2

这是我的代码:

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

_instrumentsFolderWatcher的实例在哪里FileSystemWatcher。问题是当我将文件粘贴到正在监视的文件夹中时,创建和更改的事件都会被触发。为什么会触发 changed 事件?此外,changed 事件是用ChangeTypeof Changed 触发的。我该如何解决这个问题?

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

4

1 回答 1

2

MSDN FileSystemWatcher 类

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

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

于 2013-10-19T12:38:04.270 回答