让文件改动无所遁形,System.IO.FileSystemWatcher实战解析

当文件系统中的文件或目录发生变化时,及时、准确地掌握这些变化是非常重要的。而使用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}");

}

代码运行效果如下:

让文件改动无所遁形,System.IO.FileSystemWatcher实战解析

当然,我们可以改成自己需要的效果,在此仅进行演示,写的比较简单。

下面是全部代码,朋友们可以参考:

让文件改动无所遁形,System.IO.FileSystemWatcher实战解析