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

时间:2016-10-04 06:07:32

标签: c# filesystems filesystemwatcher

当文件夹内容发生变化时,我正在使用FileSystemWatcher来获取事件。我已成功地在添加,删除或重命名文件时成功查看事件,但在我正在观看的目录中创建新文件夹时未触发事件。

我尝试过以下事件:

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

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

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

这可能与FileSystemWatcher有关,还是我需要使用别的东西?

由于

1 个答案:

答案 0 :(得分:2)

您尚未包含目录

NotifyFilters.DirectoryName

在您的notifyfilter中。

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

所以你应该按如下方式设置你的notifyfilter:

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

我没有验证,你没有提及它但是设置Filter可能会过滤掉一个行为,尽管文档说明获取或设置用于确定监视哪些文件的过滤器字符串在目录中。