C#中FileSystemWatcher的使用教程

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提供了一种方便的方式来实现文件系统的监控和处理。

后端开发标签