c# - FileSystemWatcher 不通知删除路径目录本身
问题描述
我在我的代码中使用 FileSystemWatcher 来跟踪受监视目录下文件的任何更改/重命名/添加。现在,如果受监视的目录本身被删除,我需要通知。
关于如何实现这一目标的任何建议?
我试图在父目录上添加第二个观察者(C:\temp\subfolder1
在下面的示例中)并将事件过滤到受监控目录的完整路径(C:\temp\subfolder1\subfolder2
)。
但是,如果删除是在更高的目录级别完成的,并且我不想监视整个文件系统,这将不起作用。在下面的示例中,它也应该在删除时触发C:\temp
,而不仅仅是在删除时触发C:\temp\subfolder1
。
class Program
{
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\temp\subfolder1\subfolder2";
watcher.EnableRaisingEvents = true;
watcher.Changed += OnChanged;
watcher.Created += OnChanged;
watcher.Deleted += OnChanged;
watcher.Renamed += OnChanged;
Console.ReadLine();
}
private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine(e.FullPath);
}
}
解决方案
您可以订阅FileSystemWatcher.Error
事件。这将在父目录被删除时触发。然后您可以进行适当的检查以查看这是否是由文件夹删除引起的。
推荐阅读
- javascript - 如何循环 jquery 中的第二个元素?
- ios - 来自文件的预格式化 UITextView 内容
- javascript - SCRIPT438:对象不支持属性或方法“attr”
- java - Maven 蚂蚁任务。传递(pom)依赖和https问题
- graphics - 我有一个带有矩形的图像,如何找到 4 个角的边界坐标。如何识别每个矩形/正方形并找到它的坐标?
- typescript - 我可以定义一个作为枚举和函数的打字稿变量吗?
- react-native - 我应该怎么做才能在 Google Playstore 上上传 React Native CLI Released APK?
- python - 在多列中选择两列
- python - 如何在 matplotlib 中使用“blit”编写可以使用“拖动”移动查看图像不同部分的程序
- javascript - Node.js TypeError:无法读取未定义的属性“主机”