这是我的代码:
_instrumentsFolderWatcher.Changed += _instrumentsFolderWatcher_Changed;
_instrumentsFolderWatcher.Created += _instrumentsFolderWatcher_Created;
_instrumentsFolderWatcher.Deleted += _instrumentsFolderWatcher_Deleted;
其中_instrumentsFolderWatcher
是FileSystemWatcher
的实例。问题是当我将文件粘贴到正在监视的文件夹中时,会触发创建和更改的事件。为什么要改变事件被解雇?此外,更改的事件将在ChangeType
已更改的情况下触发。我该如何解决这个问题?
Edit:
为什么更改文件名时未触发Changed事件?
答案 0 :(得分:2)
通用文件系统操作可能会引发多个事件。例如,当文件从一个目录移动到另一个目录时,可能会引发几个OnChanged和一些OnCreated和OnDeleted事件。移动文件是一项复杂的操作,由多个简单操作组成,因此可以引发多个事件。同样,某些应用程序(例如,防病毒软件)可能会导致FileSystemWatcher检测到其他文件系统事件。
尝试使用Renamed
事件来确定何时重命名文件。