Jer*_*dge 4 delphi httpapplication tfilestream delphi-xe2
我一直在研究HTTP Web服务器应用程序(通过TIdHTTPWebBrokerBridge),并且在将文件加载到stream(TFileStream)以发送回客户端时遇到一些问题.它不是每次都会发生,而是随机发生......我一直在例外......
Cannot open file "C:\SomePath\SomeFile.html". The process cannot access the file because it is being used by another process
它出现在这一行:
Str:= TFileStream.Create('C:\SomePath\SomeFile.html', fmOpenRead);
(Str是一个TFileStream)
我假设这个消息代表自己,但我绝对需要避免它.此异常仅在调试模式下发生,但我需要调试此事情而不必担心始终收到此消息.
奇怪的是,大多数情况下,文件仍然被加载并发回.
我怎么能避免这个呢?为什么它不允许我不止一次打开它,即使它是只读的?
正如@ain在评论中所述 - 您缺少构造函数中的共享模式.
改变这个
Str:= TFileStream.Create('C:\SomePath\SomeFile.html', fmOpenRead);
Run Code Online (Sandbox Code Playgroud)
对此
Str:= TFileStream.Create('C:\SomePath\SomeFile.html', fmOpenRead or fmShareDenyNone);
Run Code Online (Sandbox Code Playgroud)