文件系统观察器 OnChanged 和 OnCreated 事件为单个文件被多次调用。

File System Watcher OnChanged and OnCreated event gets called multiple times for a single file.

这是我的代码:

m_Watcher.Filter = "*.*";
                    m_Watcher.Path = settings.FolderName;
                    m_Watcher.IncludeSubdirectories = true;
                    m_Watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
                    m_Watcher.Changed += new FileSystemEventHandler(OnChanged);
                    m_Watcher.Created += new FileSystemEventHandler(OnCreated);
                    //m_Watcher.Deleted += new FileSystemEventHandler(OnChanged);
                    m_Watcher.Renamed += new RenamedEventHandler(OnRenamed);
                    m_Watcher.EnableRaisingEvents = true;

每当我将文件或文件夹复制到正在监视的文件夹时,OnCreated 和 OnChanged 方法都会被触发多次。谁能告诉我哪里出错了?

在您的事件处理程序中,检查所引发事件的 ChangeType 属性。有许多不同的更改类型,可以调用其中的几种,具体取决于文件系统中发生的情况。

https://msdn.microsoft.com/en-us/library/t6xf43e0%28v=vs.110%29.aspx

您可能只想处理某些更改类型。因此,只需确保其中的逻辑仅处理您希望管理的所需变更类型。您可能不需要处理到目前为止指定的那么多事件。