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