为什么FileSystemWatcher在创建文件时引发Changed事件?

时间:2013-10-17 03:37:18

标签: c# .net c#-4.0 filesystemwatcher

这是我的代码:

 _instrumentsFolderWatcher.Changed += _instrumentsFolderWatcher_Changed;
 _instrumentsFolderWatcher.Created += _instrumentsFolderWatcher_Created;
 _instrumentsFolderWatcher.Deleted += _instrumentsFolderWatcher_Deleted;

其中_instrumentsFolderWatcherFileSystemWatcher的实例。问题是当我将文件粘贴到正在监视的文件夹中时,会触发创建和更改的事件。为什么要改变事件被解雇?此外,更改的事件将在ChangeType已更改的情况下触发。我该如何解决这个问题?

Edit:为什么更改文件名时未触发Changed事件?

1 个答案:

答案 0 :(得分:2)

MSDN FileSystemWatcher Class

  

通用文件系统操作可能会引发多个事件。例如,当文件从一个目录移动到另一个目录时,可能会引发几个OnChanged和一些OnCreated和OnDeleted事件。移动文件是一项复杂的操作,由多个简单操作组成,因此可以引发多个事件。同样,某些应用程序(例如,防病毒软件)可能会导致FileSystemWatcher检测到其他文件系统事件。

尝试使用Renamed事件来确定何时重命名文件。