这是我的代码:
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方法会被多次触发。谁能告诉我哪里出错了?
答案 0 :(得分:1)
在事件处理程序中,检查引发事件的ChangeType属性。根据文件系统中发生的情况,可以调用多种不同的更改类型,可以调用多种类型。
https://msdn.microsoft.com/en-us/library/t6xf43e0%28v=vs.110%29.aspx
您可能只希望处理某些更改类型。因此,只需要确保其中的逻辑只处理您希望管理的所需更改类型。您可能不需要处理到目前为止已经指定的许多事件。