添加文件夹时 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监控目录中的哪些文件。
我正在使用 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监控目录中的哪些文件。