C#中使用FileSystemWatcher监控文件夹变动
|
admin
2025年6月27日 15:26
本文热度 52
|
在软件开发中,我们经常需要监控文件夹中的文件变动情况,比如文件的创建、修改、删除等。在C#中,`FileSystemWatcher`类提供了一种方便的方式来实现这一功能。本文将通过一个具体的示例,展示如何使用`FileSystemWatcher`来监控文件夹中的文件变动。
这使得我们能够实时响应文件系统的变动,执行相应的操作。
以下是一个简单的示例,展示如何使用`FileSystemWatcher`来监控一个文件夹中的`.txt`文件变动情况,并在控制台输出变动信息。
```csharp
using System;
using System.IO;
namespace FileSystemWatcherDemo
{
class Program
{
static void Main(string[] args)
{
string pathToWatch = @"C:\path\to\directory";
using (FileSystemWatcher watcher = new FileSystemWatcher())
{
watcher.Path = pathToWatch;
watcher.Filter = "*.txt";
watcher.IncludeSubdirectories = true;
watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
watcher.Changed += OnChanged;
watcher.Created += OnChanged;
watcher.Deleted += OnDeleted;
watcher.Renamed += OnRenamed;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press 'q' to quit the sample.");
while (Console.Read() != 'q') ;
}
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
}
private static void OnDeleted(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File: {e.FullPath} has been deleted");
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");
}
}
}
```
初始化`FileSystemWatcher`对象:首先,我们创建了一个`FileSystemWatcher`对象,并设置了要监控的文件夹路径。
设置监控参数:我们设置了监控的文件类型为`.txt`,并且监控子目录。同时,我们设置了监控的事件类型,包括文件的最后写入时间、文件名和目录名。
注册事件处理程序:我们为`Changed`、`Created`、`Deleted`和`Renamed`事件注册了事件处理程序。当这些事件发生时,相应的事件处理程序会被调用。
开始监控:通过设置`EnableRaisingEvents`属性为`true`,我们开始了文件监控。
事件处理程序:在事件处理程序中,我们输出了文件的完整路径和发生的事件类型,以便我们能够实时了解文件系统的变动情况。
通过使用`FileSystemWatcher`类,我们可以方便地监控文件夹中的文件变动情况,并根据需要执行相应的操作。这在很多应用场景中都非常有用,比如自动备份、实时同步等。希望这个示例能够帮助你理解如何使用`FileSystemWatcher`来监控文件系统的变动。
- EOF -
该文章在 2025/6/27 15:26:16 编辑过