FileSystemWatcher检测到持续变化

时间:2016-02-24 04:51:18

标签: c# .net filesystemwatcher

我正在使用FileSystemWatcher来检测文件中的更改 - 我监视目录,然后查看通过事件args传入的文件是否与我感兴趣的文件匹配。

我们遇到一个客户端,其中更改的事件被不断触发,但当我检查修改日期时没有任何变化。

这给我们带来了各种各样的问题。我可以(和我)检查上次修改日期是否已经改变,然后才对事件采取行动。

我无法轻松调试它,因为我无法重现它,虽然我可以在客户端计算机上安装调试版本 - 尽管有时它会停止发生。

但我想知道我是否可以阻止这个问题的原因。

[编辑]我最初没有添加这个,因为我很确定它不相关,但是先前版本的代码 对相关文件进行了大量更改,更多我们可以在代码中处理。但是当前版本没有那个问题,并且从那时起机器已经被重置,所以我无法想象它会导致当前的问题。

1 个答案:

答案 0 :(得分:0)

可能正在发生其他更改事件,例如文件属性或安全ACL修改。看一下通知过滤器:

https://msdn.microsoft.com/en-us/library/system.io.notifyfilters(v=vs.110).aspx

您可以将其设置为过滤以仅包含所需的更改。在这种情况下,听起来你只想要写时间修改。您可以将其分配给观察者的NotifyFilter属性。

很难说出您的确切情况会发生什么,但文件属性可能会被更改(例如,通过索引器)或某些此类后台进程。这些修改可能不会导致上次写入时间的更改,但仍可能导致观察者触发。