可以使用 FileSystemWatcher
类监视文件或目录的更改,一旦检测到更改,就可以触发相应的事件并通知软件。以下是一个简单的实现示例,展示如何监视指定目录中的文件更新,并对此作出反应。
使用 FileSystemWatcher
监视文件更新
FileSystemWatcher
可以监视文件系统的变化,支持以下事件:
Changed
:文件或目录已更改。
Created
:文件或目录已创建。
Deleted
:文件或目录已删除。
Renamed
:文件或目录已重命名。
csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string pathToWatch = @"C:\path\to\your\folder"; // 替换为要监视的文件夹路径
// 创建 FileSystemWatcher 实例
using (FileSystemWatcher watcher = new FileSystemWatcher())
{
watcher.Path = pathToWatch;
// 监视文件更改的类型
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
// 监视所有文件
watcher.Filter = "*.*";
// 订阅事件
watcher.Changed += OnChanged;
watcher.Created += OnChanged;
watcher.Deleted += OnChanged;
watcher.Renamed += OnRenamed;
// 开始监视
watcher.EnableRaisingEvents = true;
Console.WriteLine($"正在监视目录: {pathToWatch}");
Console.WriteLine("按任意键退出...");
Console.ReadKey(); // 等待用户按键退出
}
}
// 文件或目录更改的处理方法
private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"文件 {e.FullPath} 的状态已更改: {e.ChangeType}");
}
// 文件或目录重命名的处理方法
private static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"文件 {e.OldFullPath} 重命名为 {e.FullPath}");
}
}