当文件系统中的文件或目录发生变化时,及时、准确地掌握这些变化是非常重要的。而使用System.IO.FileSystemWatcher类,我们可以轻松地实现这一需求。无论是文件的微小修改,还是目录的迁移,都无法逃脱它的监视。这个强大的工具让我们能够及时、自动地响应各种变化,为应用程序带来更高的效率和智能化水平。接下来,让我们探索一下如何巧妙地运用System.IO.FileSystemWatcher类
// 指定要监视的目录路径
string directoryPath = @"C:\Path";
//使用指定的目录路径创建了一个FileSystemWatcher实例。这个实例将用于监视该目录中的文件和子目录的变化。
FileSystemWatcher watcher = new FileSystemWatcher(directoryPath);
// 订阅事件.通过给watcher对象的各种事件(如Changed、Created、Deleted和Renamed)添加事件处理程序,可以定义当这些事件发生时应该执行的操作。
watcher.Changed += OnChanged;//当文件被修改时触发。
watcher.Created += OnCreated;//当新文件被创建时触发。
watcher.Deleted += OnDeleted;//当文件被删除时触发。
watcher.Renamed += OnRenamed;//当文件被重命名时触发。
// 启动监视器,通过设置EnableRaisingEvents属性为true,启动了监视器,开始监听目录的变化。
watcher.EnableRaisingEvents = true;
Console.WriteLine("按任意键停止监听...");
Console.ReadKey();
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine(#34;文件 {e.FullPath} 已更改");
}
private static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine(#34;文件 {e.FullPath} 已创建");
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine(#34;文件 {e.FullPath} 已删除");
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine(#34;文件 {e.OldFullPath} 重命名为 {e.FullPath}");
}
代码运行效果如下:

当然,我们可以改成自己需要的效果,在此仅进行演示,写的比较简单。
下面是全部代码,朋友们可以参考:
