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