在C#中,可以使用FileSystemWatcher
類來監控文件的變化。以下是一個簡單的示例,演示了如何使用FileSystemWatcher
來監控一個文件夾中的文件變化:
using System;
using System.IO;
namespace FileSystemWatcherExample
{
class Program
{
static void Main(string[] args)
{
// 創建一個新的 FileSystemWatcher 實例
using (FileSystemWatcher watcher = new FileSystemWatcher())
{
// 設置要監控的文件夾路徑
watcher.Path = @"C:\example_folder\";
// 設置要監控的事件類型
watcher.NotifyFilter = NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
// 注冊事件處理程序
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
// 開始監控文件夾
watcher.EnableRaisingEvents = true;
Console.WriteLine("開始監控文件夾:" + watcher.Path);
Console.WriteLine("按任意鍵退出...");
Console.ReadKey();
}
}
// 當文件或文件夾發生更改時觸發的事件處理程序
static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine($"文件或文件夾已更改:{e.FullPath}");
}
// 當文件或文件夾被重命名時觸發的事件處理程序
static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine($"文件或文件夾已重命名:{e.OldFullPath} -> {e.FullPath}");
}
}
}
在這個示例中,我們創建了一個FileSystemWatcher
實例,并設置了要監控的文件夾路徑。然后,我們設置了要監控的事件類型(最后訪問、最后寫入、文件名和目錄名),并為這些事件注冊了事件處理程序。最后,我們調用EnableRaisingEvents
方法開始監控文件夾。