有许多程序,例如Visual Studio,可以检测外部程序何时修改文件,然后在用户想要选择时重新加载文件.是否有一种相对简单的方法在C++中执行此类操作(不一定必须与平台无关)?
我需要原始C++/WinAPI中的.Net的FileSystemWatcher模拟.我几乎开始使用FindFirstChangeNotification/FindNextChangeNotification来编写一个代码,但后来我发现我可能不是第一个需要这个并且可能有人愿意分享的人.
理想情况下我需要的是一个可以按如下方式使用的类:
FileWatcher fw;
fw.startWatching("C:\MYDIR", "filename.dat",
FileWatcher::SIZE | FileWatcher::LAST_WRITE,
&myChangeHandler);
...
fw.stopWatching();
Run Code Online (Sandbox Code Playgroud)
或者,如果它会使用像boost :: signal这样的东西,它会更好.但是,除了标准库,提升和原始WinAPI之外,没有其他依赖项.谢谢!