删除文件后,FileWatcher将触发更改事件

时间:2010-03-30 09:42:15

标签: c#

我正在使用FileWatcher在文件添加到文件夹后立即触发处理。在处理完文件后,它将被删除。

我的问题是,在删除文件之后,我得到另一个文件更改事件,这个事件非常接近删除,而在某些情况下检查File.Exists它会告诉该文件仍然存在。但当然,在寻找处理文件的几毫秒之后,它并不存在。 FileWatcher设置为通知     NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Attributes

谢谢, 林

2 个答案:

答案 0 :(得分:1)

如果你对SO进行一些搜索,你会发现很多问题,人们喜欢检查他们是否能够访问文件,或者他们是否拥有所需的权利。

问题是,即使你检查它(就像你使用File.Exists()一样),当涉及到实际操作时,情况也会改变。

因此,只需抛出File.Exists()并在删除操作周围添加try catch 如果它失败了,你可以自行决定是否只是静静地删除它,通知用户,关闭你的应用程序,关闭电脑等等。

答案 1 :(得分:0)

通常filewatcher会多次触发,因为fileChange是一系列事件。 这是一个有用的链接。 http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx 滚动到最后。