1. FileSystemWatcher简介
FileSystemWatcher是C#中的一个类,用于监视文件系统的更改。它可以监视指定文件夹中的文件和子文件夹,并在文件系统中发生更改时触发相应的事件。
FileSystemWatcher提供了一种方便的方式来跟踪文件的创建、修改、删除和重命名等操作。
2. FileSystemWatcher的基本用法
2.1 创建FileSystemWatcher对象
要使用FileSystemWatcher,首先需要创建一个FileSystemWatcher对象。可以使用下面的代码创建一个基本的FileSystemWatcher对象:
FileSystemWatcher watcher = new FileSystemWatcher();
使用FileSystemWatcher的默认构造函数创建对象。
2.2 设置要监视的文件夹和文件类型
要指定要监视的文件夹路径,可以使用FileSystemWatcher的Path属性:
watcher.Path = "C:\\temp";
将要监视的文件夹路径设置为"C:\\temp"。
要指定要监视的文件类型,可以使用FileSystemWatcher的Filter属性:
watcher.Filter = "*.txt";
将要监视的文件类型设置为.txt。
2.3 设置要监视的文件系统更改类型
要指定要监视的文件系统更改类型,可以使用FileSystemWatcher的NotifyFilter属性:
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.Size;
设置要监视的文件系统更改类型为文件名、最后写入时间和文件大小的更改。
2.4 注册事件处理程序
要在文件系统更改时执行特定的操作,可以注册事件处理程序。可以使用FileSystemWatcher的事件来实现。
下面是一些常用的事件:
Created:当有新文件或文件夹创建时触发。
Deleted:当有文件或文件夹被删除时触发。
Changed:当有文件或文件夹的属性被修改时触发。
Renamed:当文件或文件夹被重命名时触发。
要注册事件处理程序,可以使用如下代码:
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
注册了四个事件处理程序,分别处理文件或文件夹的创建、删除、修改和重命名。
2.5 开始监视
在完成上述的设置之后,可以使用FileSystemWatcher的EnableRaisingEvents属性来启用监视:
watcher.EnableRaisingEvents = true;
启用FileSystemWatcher的监视功能。
3. 示例代码
下面是一个完整的FileSystemWatcher示例代码,演示了如何设置并使用FileSystemWatcher来监视文件系统的更改。
using System;
using System.IO;
class Program
{
static void Main()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\temp";
watcher.Filter = "*.txt";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.Size;
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
static void OnCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File created: {e.FullPath}");
}
static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File deleted: {e.FullPath}");
}
static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File changed: {e.FullPath}");
}
static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine($"File renamed: {e.OldFullPath} to {e.FullPath}");
}
}
4. 总结
以上是使用FileSystemWatcher的基本步骤。通过设置要监视的文件夹、文件类型和文件系统更改类型,并注册相应的事件处理程序,可以轻松地实现对文件系统的监视和响应。
FileSystemWatcher提供了一种方便的方式来实现文件系统的监控和处理。