FileSystemWatcher的问题,请高手帮助
我用 FileSystemWatcher 检测文件是否更新.代码如下
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = @ "F:\Self\documents ";
fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
fsw.Filter = "*.htm ";
fsw.Changed += new FileSystemEventHandler(fsw_Changed);
fsw.EnableRaisingEvents = true;
static void fsw_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine( "文件 " + e.Name + "已改变 ");
}
为什么总是输出两次结果,而且当我选中F:\Self\documents下的某个htm文件时,他就算一次更新,这是不是vs的bug呀.还有如果我在判断cpu的利用率小于10%时在执行检测的话,出现更多.
------解决方案--------------------fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
你的modifier的 问题,如果修改的话,它既是一次lastaccess,也是一次lastwrite所以会修改两次
更具体的可以去网上查找,有人总结过
------解决方案--------------------up
------解决方案--------------------应该是ms的问题
------解决方案--------------------一个群的 帮你顶 -0-
------解决方案--------------------需要对触发的事件进行过滤
fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.Attributes;
fsw.Changed += new FileSystemEventHandler(fsWatcher_Changed);
------解决方案--------------------http://topic.csdn.net/t/20061017/11/5087860.html,这个是在网上搜的,不知道对你有没有帮助