如何使用C++监视文本文件更改?难度:没有.NET

scu*_*bbl 4 c++ monitoring file

使用案例:第三方应用程序希望以编程方式监视由另一个程序生成的文本文件.文本文件包含要在更新时分析的数据.

我找到了围绕FileSystemWatcher的这个问题的很多答案,但是假设你正在编写一个Windows机器的应用程序,并且无法保证安装.NET.

有没有可用于此的库,或者我只是必须推出自己的解决方案呢?

谢谢.

Mar*_*ett 8

您可以使用FindFirstChangeNotification监视目录,适用于任何窗口.
如果您知道文件的位置,那就很有效了 - 否则您可以使用下面描述的虚拟驱动程序/ Filemon来检查系统中的任何位置的更改.

这里的示例代码


Ada*_*rce 5

更简单的解决方案可以是检查文件的最后修改时间戳.

如果使用_stat64()函数执行此操作,它将成为跨平台解决方案.

示例代码:

struct __stat64 fileinfo;

if(-1 != _stat64(filename, &fileinfo)
   return fileinfo.st_mtime;
Run Code Online (Sandbox Code Playgroud)