我一直工作在HTTP Web服务器应用程序(通过TIdHTTPWebBrokerBridge
),并有一个小问题,当谈到加载文件转换成流(TFileStream
)被发送回抚养错误客户。它不发生的每一次,但相当随机...我不断收到一个例外......德尔福HTTP应用程序时加载文件到流
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);
(海峡是一个TFileStream
)
我假设该消息说明了它的自我,但我绝对需要避免。这个异常只发生在调试模式下,但我需要调试这个东西,而不必担心这个消息会一直出现。
奇怪的是,大多数情况下,文件无论如何都会被加载并发回。
我怎么能避免这种情况呢?为什么它不允许我多次打开它,即使它是只读的?
好了,你不要在你的代码中使用共享模式......也许使用'fmShareDenyWrite'或'fmShareDenyNone'所有需要的多数民众赞成要解决您的问题,请参阅http://docwiki.embarcadero.com/Libraries/en/System.Classes.TFileStream.Create – ain 2012-03-24 17:38:03