代码之家  ›  专栏  ›  技术社区  ›  Bahadir Cambel

文件系统监视程序事件触发器问题

  •  0
  • Bahadir Cambel  · 技术社区  · 15 年前

    看起来,filesystemwatcher不止一次触发事件。这是我的设置;

     watcher = new FileSystemWatcher();
     watcher.Path = @"D:\testSpace";
     watcher.InternalBufferSize = 1024*64;
     watcher.Deleted += Triggered;
     watcher.Changed += Triggered;
     watcher.Created += Triggered;
     watcher.Error += ErrorOccured;
     watcher.NotifyFilter = NotifyFilters.LastWrite;
     watcher.IncludeSubdirectories = true;
    
     watcher.EnableRaisingEvents = true; 
    
    • 如果更改了文档,则会触发两次“文档更改”事件。

    • 除非在文件夹下创建新文件,否则不会触发“新建文件夹”事件。

    • 未触发已删除事件(也尝试使用shift delete)

    你们知道有什么办法解决这些问题吗?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Alex K.    15 年前

    FileSystemWatcher :

    常见的文件系统操作可能 引发多个事件。为了 例如,当文件从一个 目录到另一个,几个 一次改变,一些改变 可能引发OnDeleted事件。 移动文件是一项复杂的操作 由多个简单的 因此提高了 事件。同样,一些应用程序 (例如,防病毒软件) 可能导致额外的文件系统 检测到的事件 文件系统监视程序。

    链接中描述了第一期的解决方案。