我正在尝试在Delphi 7应用程序中打开一个文本文件进行阅读,但是由于另一个应用程序已经打开了该文件,因此出现了I/O错误32(共享冲突)。
我已经尝试将FileMode设置为“fmOpenRead or fmShareDenyNone”,但现在意识到这对文本文件没有任何作用。
有没有一种方法可以读取被另一个应用程序打开的文本文件?
var
f: TextFile;
begin
FileMode := fmOpenRead or fmShareDenyNone; // FileMode IS NOT APPLICABLE TO TEXT FILES!!
AssignFile(f, FileName);
Reset(f);
TStreamReader
从TFileStream
中读取行。它具有ReadLine()
方法,并为您内部缓冲。 - Remy LebeauTStreamReader
,只需使用具有足够共享权限的TFileStream
首先打开文件(fmOpenRead
或fmShareDenyNone
通常可以,除非其他句柄对该文件具有独占访问权限),然后将TFileStream
传递给TStreamReader
进行读取。 - Remy Lebeau