我正在开发一个应用程序,使用NotifyFilters.FileName和NotifyFilters.DirectoryName过滤器来使用FileSystemWatcher观看文件/目录创建/删除事件。我也设置IncludeSubdirectories为真FileSystemWatcher - Windows资源管理器 - >撤消
使用此,如果我在Windows资源管理器中复制文件夹,我得到创建事件的每个子文件夹以及新文件夹本身。但是,如果我在Windows资源管理器(包含子项)中删除一个文件夹,然后“撤消”在Windows资源管理器中的操作,我只会得到该文件夹的创建事件,而不是任何子项。
我不能简单地做一个Directory.GetFiles()作为子项目可能不存在在那一点,我不能只调度它到以后的时间取决于文件的计数/大小,撤消操作可能需要很长时间才能完成,我不知道延迟调度需要多长时间。
我注意到,如果我也听NotifyFilters.Attributes标志,那么我确实会为撤消操作的每个子项都得到一个ResourceChanged事件,但ResourceChanged事件会在很多其他情况下引发,并且我真的在寻找一个明确的创作活动。
有什么建议吗?