如何解决如何读取其他进程正在使用的文件?
| 我有一个具有日志系统的应用程序,该系统创建一个文件并使用TFileStream来处理该文件,该文件是通过以下方式创建的: FFileStream:= TFileStream.Create(FFilename,fmOpenWrite); 好。当我尝试使用记事本打开此文件时,没有问题,使用记事本++没问题。当我尝试使用创建的其他应用程序加载文件时,出现一个错误,提示该文件正在由其他进程使用。 我尝试了TStringList,LoadFromFile和TFileStream.Create(LFile,fmOpenRea);。 有人知道我该如何阅读记事本和记事本++之类的内容吗? Tks。解决方法
使用
fmOpenWrite or fmShareDenyNone
启用共享。
,Erik首先到达那里,但是使用了fmShareDenyNone,它将允许其他进程写入同一文件。如果仅允许其他进程读取,请使用:
FFileStream := TFileStream.Create(FFilename,fmOpenWrite or fmShareDenyWrite);
,我正在使用Delphi7,当时遇到的情况是TFileStream有时无法打开文件进行读取,而只能将其锁定以进行写入。 (在开始研究TFileStream类的共享参数之前;我了解它们,并对其进行了正确设置。)虽然我尚无法找出这种明显的错误行为的原因,但我发现它可以工作通过使用其他一些文件处理方式:
虽然无法使用TFileStream打开文件-即使使用正确的共享设置(是的,我知道我在做什么)-可以使用适当的WinAPI调用轻松打开文件:Windows单元中包装的CreateFile / ReadFile / SetFilePointer / CloseHandle 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。