C# FileSystemWatcher为创建的事件生成数量不一致的事件

C# FileSystemWatcher为创建的事件生成数量不一致的事件,c#,C#,环境:Windows7 64位/C 我有一个名为Folder50的文件夹,里面有50个文件。当我使用ctrl+C和ctrl+V命令将此文件夹复制到文件系统监视文件夹时,有时系统会生成51个事件,包括根文件夹 void onCreated(object source, FileSystemEventArgs e) { Console::WriteLine( "File: {0} {1}", e.FullPath, e.ChangeType ); } 但有时,系统

环境:Windows7 64位/C

我有一个名为Folder50的文件夹,里面有50个文件。当我使用ctrl+C和ctrl+V命令将此文件夹复制到文件系统监视文件夹时,有时系统会生成51个事件,包括根文件夹

   void onCreated(object source, FileSystemEventArgs e)
   {
        Console::WriteLine( "File: {0} {1}", e.FullPath, e.ChangeType );
   }
但有时,系统只为根文件夹生成一个事件

   void onCreated(object source, FileSystemEventArgs e)
   {
        Console::WriteLine( "File: {0} {1}", e.FullPath, e.ChangeType );
   }

我对FileSystemWatcher做了很多实验,遇到了与您相同的问题。经过一番研究,我发现这似乎就是它的运作方式。我成功地设置了计时器,如果在上次事件的指定时间段内发生其他事件,则可以忽略这些事件,但显然,不同文件的并发副本也会丢失

如果您观看所有可用的事件,则会发生更多奇怪的事情。复制文件将触发删除和新文件创建事件,有时是每个事件的倍数。保存一个文件会导致大量的写操作。总的来说,FileSystemWatcher非常不一致

我从下面的网站上找到了一些帮助,在对代码进行了一些修改后,它满足了我的需要


这对我来说看起来不太像C。我为输入C++代码道歉。