如何让程序监视C ++中的文件修改?

如何让程序监视C ++中的文件修改?

有许多程序,例如Visual Studio,可以检测外部程序何时修改文件,然后在用户想要选择时重新加载文件。是否有一种相对简单的方法在C ++中执行此类操作(不一定必须与平台无关)?



哔哔one
浏览 619回答 3
3回答

繁花不似锦

根据平台的不同,有几种方法可以做到这一点。我会从以下选择中选择:跨平台Trolltech的Qt有一个名为QFileSystemWatcher的对象,它允许您监视文件和目录。我确信还有其他跨平台框架也可以为您提供这种功能,但是根据我的经验,这个框架运行得相当好。Windows(Win32)有一个名为FindFirstChangeNotification的Win32 api 可以完成这项工作。有一篇很好的文章,api的一个小包装类叫做如果在指定的目录中发生更改将如何获得通知,这将启动你。Windows(.NET Framework)如果您可以在.NET Framework中使用C ++ / CLI,那么 System.IO.FileSystemWatcher就是您的选择。Microsoft有一篇关于如何使用此类监视文件系统更改的文章 。OS X.该FSEvents API是新的OS X 10.5和非常功能全面。Linux的使用inotify作为Alex在他的回答中提到。

米脂

SimpleFileWatcher可能就是你要找的东西。但当然这是一种外部依赖 - 也许这对你来说是没有选择的。
打开App,查看更多内容
随时随地看视频慕课网APP