我一直在开发一个HTTP Web服务器应用程序(通过TIdHTTPWebBrokerBridge
),在将文件载入流(TFileStream
)以发送给客户端时,遇到了一些小问题。这并不是每次都会发生,但相当随机... 我一直收到异常...
无法打开文件“C:\SomePath\SomeFile.html”。该过程无法访问该文件,因为另一个进程正在使用它。
它会在以下行上发生:
Str:= TFileStream.Create('C:\SomePath\SomeFile.html', fmOpenRead);
(其中,Str 是TFileStream
)
我想这条信息说明了问题,但我绝对需要避免它。这个异常只在调试模式下发生,但我需要在调试过程中不必一直担心这个消息。
奇怪的是,大多数情况下,文件仍然被加载并发送回去。
我该如何避免这种情况?即使是只读的为什么也不能打开多次呢?
fmShareDenyWrite
或fmShareDenyNone
就可以解决问题,参见http://docwiki.embarcadero.com/Libraries/en/System.Classes.TFileStream.Create。 - ain