我告诉我的FileWatcher
,它应该包含子目录
_watcher.IncludeSubdirectories = true;
我遇到的问题是,有多个文件具有相同的文件结尾。 所以我的观察者多次被触发。
我有类似的东西
(子文件夹[x]是被观看者)
mainFolder / subfolder [x] / - >在这个example.mkv和另外两个文件类型 mainFolder / subfolder [x] / subfolder2 / - >在这一个只是一个sample.mkv
FileWatcher配置为:
_watcher.Filter = "*.mkv";
目前"已创建"事件被触发两次(" example.mkv"" sample.mkv") 我希望它只是为" example.mkv"触发了一次。而不是" sample.mkv"。 我怎么能只是观看"第一个子文件夹并排除第二个子文件夹?
答案 0 :(得分:-1)
您只想查看目标树的目标和第一顺序子目录/前两个级别。接近于0的代码能够在Windows上具有这样的能力,并且能够包含子目录。它是"包括所有子目录"或"不包含子目录"。
只有像Robocopy那样现代的代码才能定义"深度"。 FileWatcher并不是那么现代。它像办公室COM Interop一样生锈。它仍然遵循旧的"所有子目录或无"图案。所以你仍然需要使用旧的解决方法 - 手动递归:
IncludeSubdirectories = true;
不幸的是,FileWatcher不是最先进的类。例如,弄清楚发生了哪种变化几乎是不可能的。这就是为什么有人带着9个带过滤器的手表并将它们放在一个类中,以便从这个类中获得一些不错的信息:https://www.codeproject.com/Articles/58740/FileSystemWatcher-Pure-Chaos-Part-of