C#:如何检查打开的文件是否已更新

Jie*_*eng 3 c# io filesystemwatcher

例如,您知道该功能,C:\test.txt如果您在另一个编辑器中也有相同的文件,并且在那里编辑它,则在您返回时,应用程序将提示文件已更改,无论您是否要更新它.如何检查文件是否已更新?

UPDATE

问一个姐妹问题" 使用FileSystemWatcher来监视文件的变化 "

Dar*_*rov 9

您可以使用FileSystemWatcher从文件系统获取通知.


Eam*_*nne 5

您可以使用FileSystemWatcher,也可以在适当的时候轮询更改。

请注意,FileSystemWatcher如果在重负载下可能会错过更改,并且是IDisposable。未能正确处置它可能会导致稳定性问题(我个人曾发生过这种情况)。如果您选择轮询,请注意它会FileInfo缓存一些元数据,因此FileInfo.Refresh如果您重用FileInfo对象,则需要调用该方法。或者,使用FileAPI。

对于少数文件,轮询更容易、更安全,因为它避免了 FileSystemWatcher 的操作系统回调问题并且不会错过任何事件。对于大量文件,FileSystemWatcher必须达到合理的性能。