FileSystemWatcher 是一个用于监视文件系统更改的类。它可以监视文件夹中的文件创建、修改、删除、重命名以及文件夹创建、删除的事件。 当有这些事件发生时,可以触发相应的事件处理程序,在事件处理程序中可以执行一些自定义的操作。
使用 FileSystemWatcher 之前,首先要初始化一个新的 FileSystemWatcher 对象,并设置其属性,如要监视的文件夹、文件类型、是否监视子文件夹、是否启用异步事件等。
下面是 FileSystemWatcher 常用的属性和方法:
1. Path:要监视的文件夹的路径;
2. Filter:要监视的文件类型;
3. EnableRaisingEvents:设置是否启用事件;
4. IncludeSubdirectories:设置是否监视子文件夹;
5. Changed、Created、Deleted、Renamed 事件:这些事件分别在文件或文件夹发生相应操作时触发;
6. NotifyFilter:设置要监视的文件更改类型,如文件名、文件内容、文件属性等;
7. BeginInit、EndInit:用于初始化和完成初始化 FileSystemWatcher 对象。
下面是一个简单的案例,用于监视文件夹中的文件更改并打印出相应的事件信息:
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
// 创建一个新的 FileSystemWatcher 对象
FileSystemWatcher watcher = new FileSystemWatcher();
// 设置要监视的文件夹路径
watcher.Path = "C:\\Temp";
// 设置要监视的文件类型
watcher.Filter = "*.*";
// 启用事件
watcher.EnableRaisingEvents = true;
// 设置为监视子文件夹
watcher.IncludeSubdirectories = true;
// 设置要监视的文件更改类型
watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
// 绑定事件处理程序
watcher.Created += OnCreated;
watcher.Changed += OnChanged;
watcher.Deleted += OnDeleted;
watcher.Renamed += OnRenamed;
// 保持程序运行
Console.WriteLine("Press 'q' to quit.");
while (Console.Read() != 'q') ;
}
// 创建事件处理程序
private static void OnCreated(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Created: {e.FullPath}");
}
// 修改事件处理程序
private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Changed: {e.FullPath}");
}
// 删除事件处理程序
private static void OnDeleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Deleted: {e.FullPath}");
}
// 重命名事件处理程序
private static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"Renamed: {e.OldFullPath} -> {e.FullPath}");
}
}
```
上述案例中,当指定文件夹中的文件被创建、修改、删除、重命名时,会触发相应的事件处理程序,并打印出相应的事件信息。可以根据实际需要在事件处理程序中执行一些自定义的操作,比如记录事件日志、发送通知等。
使用 FileSystemWatcher 可以方便地监视文件系统的更改,适用于需要实时获取文件系统更改信息的场景,如监控文件夹中的日志文件、更新文件列表等。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复