如何读取其他进程正在使用的文件?

| 我有一个具有日志系统的应用程序,该系统创建一个文件并使用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 。     

要回复问题请先登录注册