c# - FileSystemWatcher 无法检测到 1 个文件的变化(添加新文件),只能检测到至少 2 个文件
问题描述
FileSystemWatcher 无法检测到1 个文件的变化(添加新文件),只能检测到至少2 个文件。观察者仅在以下情况下调用Changed事件:
- 将多个文件复制到C :\PortViewer
- 仅将1 个文件复制到C:\PortViewer,我必须在Windows的文件资源管理器中打开C:\PortViewer。
FileSystemWatcher watcher;
private void StartWatcher()
{
Directory.CreateDirectory(@"C:\PortViewer");
watcher = new FileSystemWatcher();
watcher.Path = @"C:\PortViewer";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += (s,e) => { /*Do work here*/ };
watcher.EnableRaisingEvents = true;
}
解决方案
NotifyFilters.CreatedTime
是解决方案:
FileSystemWatcher watcher;
private void StartWatcher()
{
Directory.CreateDirectory(@"C:\PortViewer");
watcher = new FileSystemWatcher();
watcher.Path = @"C:\PortViewer";
watcher.NotifyFilter = NotifyFilters.CreatedTime;
watcher.Filter = "*.*";
watcher.Changed += (s,e) => { /*Do work here*/ };
watcher.EnableRaisingEvents = true;
}
推荐阅读
- javascript - 未找到 Enzyme React 按钮组件
- css - 在组件之间切换时,ng-deep 不起作用?
- android - 尝试使用 Delphi 10.4.2 构建 Android 64 位应用程序时出现不兼容的目标链接器错误
- sql - 当内容有 HTML 标签时,如何进行全文搜索?
- c++ - 创建一个列表以根据用户输入在 C++ 中动态分配对象
- python - 访问按钮列表中的多个项目时可以使用拼接吗?
- python - sqlalchemy 中缺少 zxJDBC 连接器(使用 DB2)
- r - 并行嵌套的 foreach 循环
- rest - Sabre 无法使用“重新验证行程”REST API
- php - fetchAll(PDO::FETCH_OBJ) 作为数组返回