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

本文关键字:事件 添加 文件夹 FileWatcher | 更新日期: 2023-09-27 18:11:19

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

我尝试了以下事件:

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

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

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

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

谢谢

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

您没有包含目录

NotifyFilters.DirectoryName

在你的通知过滤器。

见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集可能过滤掉一个目录,虽然文档谈到获取或设置过滤器字符串用于确定哪些文件在目录中被监控