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