如果文件在我的程序之外被修改,如何收到通知?

时间:2013-05-24 05:55:47

标签: c# windows file-io

我程序的一部分必须跟踪一组文件,包括它们在内存中的路径和哈希码。

问题是,用户可能希望在任何时间点使用外部程序编辑文件。

如果发生这种情况,我希望我的程序得到通知,因此除了许多其他可能的操作外,它还会在其内存中更新该文件的相应哈希码。

理想情况下,我希望通知新线程或专用后台线程,并执行必要的操作而不是主GUI线程。我正在使用ConcurrentDictionary和类似的线程安全数据结构。

我正在使用C#5,Windows 7。

3 个答案:

答案 0 :(得分:3)

您正在寻找FileSystemWatcher

  

收听文件系统更改通知并在何时引发事件   目录或目录中的文件发生更改。

答案 1 :(得分:2)

您检查了FileSystemWatcher课程吗?

也许这个类可以帮助您在文件发生变化时通知。

答案 2 :(得分:2)

FileSystemWatcher组件可以为您做到这一点:
http://msdn.microsoft.com/en-us/library/342da5th(v=vs.71).aspx

我之前以类似你描述的方式尝试过它,效果很好。