添加文件夹时 FileWatcher 不触发事件

FileWatcher not triggering event when a folder is added

我正在使用 FileSystemWatcher 在文件夹内容更改时获取事件。当文件被添加、删除或重命名时,我成功地监视了事件,但是当我正在监视的目录中创建新文件夹时,事件没有被触发。

我尝试过以下事件:

watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size | NotifyFilters.Attributes;

我还将以下两个属性设置为 true,但没有帮助

watcher.EnableRaisingEvents = true;
watcher.IncludeSubdirectories = true;

这可能与 FileSystemWatcher 相关,还是我需要使用其他东西?

谢谢

您还没有包含目录

NotifyFilters.DirectoryName

在你的通知过滤器中。

https://msdn.microsoft.com/en-us/library/system.io.notifyfilters(v=vs.110).aspx

因此您应该按如下方式设置通知过滤器:

watcher.NotifyFilter = NotifyFilters.DirectoryName |
                       NotifyFilters.LastAccess | 
                       NotifyFilters.LastWrite | 
                       NotifyFilters.FileName | 
                       NotifyFilters.Size | 
                       NotifyFilters.Attributes;

我没有验证,你也没有提到,但是设置 Filter 可能会过滤掉字典,尽管文档中提到 Gets or sets the filter string used to determine监控目录中的哪些文件。