FileSystemWatcher事件触发器问题

时间:2010-04-15 15:37:32

标签: c# .net filesystemwatcher

似乎,FileSystemWatcher不止一次触发事件。这是我的设置;

 watcher = new FileSystemWatcher();
 watcher.Path = @"D:\testSpace";
 watcher.InternalBufferSize = 1024*64;
 watcher.Deleted += Triggered;
 watcher.Changed += Triggered;
 watcher.Created += Triggered;
 watcher.Error += ErrorOccured;
 watcher.NotifyFilter = NotifyFilters.LastWrite;
 watcher.IncludeSubdirectories = true;

 watcher.EnableRaisingEvents = true; 
  • 如果您更改了文档,则会触发两次文档更改事件。

  • 除非在文件夹下创建新文件,否则不会触发新文件夹创建的事件。

  • 未触发的已删除事件(也尝试使用shift delete)

你们知道这些问题的解决方法吗?

1 个答案:

答案 0 :(得分:3)

FileSystemWatcher

  

通用文件系统操作可能   举办不止一场比赛。对于   例如,从一个文件移动文件时   目录到另一个,几个   OnChanged和一些OnCreated和   可能会引发OnDeleted事件。   移动文件是一项复杂的操作   它由多个简单组成   操作,因此提高了多个   事件。同样,一些应用程序   (例如,防病毒软件)   可能会导致其他文件系统   被检测到的事件   FileSystemWatcher的。

链接中描述了第一期的解决方案。