似乎,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)
你们知道这些问题的解决方法吗?
答案 0 :(得分:3)
通用文件系统操作可能 举办不止一场比赛。对于 例如,从一个文件移动文件时 目录到另一个,几个 OnChanged和一些OnCreated和 可能会引发OnDeleted事件。 移动文件是一项复杂的操作 它由多个简单组成 操作,因此提高了多个 事件。同样,一些应用程序 (例如,防病毒软件) 可能会导致其他文件系统 被检测到的事件 FileSystemWatcher的。
链接中描述了第一期的解决方案。