日志文件监视器

Pie*_*Wyk 4 delphi file-io file-locking

是否可以打开文本文件并在另一个应用程序更新文件时读取内容,这样它不会导致锁定冲突?

我需要监视来自一个应用程序的日志文件,每次事件发生时由另一个应用程序更新.

我在尝试阅读之前检查文件是否正在使用,但这似乎并不适用于所有情况.

谢谢,彼得

ava*_*var 10

这取决于第一个应用程序如何打开该文件.

即,在调用CreateFile API打开文件时,有dwShareMode param告诉api如何打开它(如果给出0,则无法从其他应用程序IIRC访问它).否则从该文件读取应该没有问题.如果我没有弄错,要检查该文件是否被打开只读你可以调用类似的东西

CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) ;
Run Code Online (Sandbox Code Playgroud)

  • 要在Delphi中使用它,请使用TFileStream类并将正确的fmShareXXX常量传递给构造函数 - 这将包装CreateFile()功能. (3认同)