在C#中,可以使用FileSystemWatcher
類來監視文件系統中的文件變化。以下是一個簡單的示例:
using System;
using System.IO;
class Program
{
static void Main()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\path\to\directory";
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("Press 'q' to quit the program.");
while(Console.Read()!='q'){}
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");
}
}
在這個示例中,我們創建了一個FileSystemWatcher
對象,并使用Path
屬性指定要監視的目錄。然后,我們設置NotifyFilter
屬性來指定我們要監視的文件變化類型。在這個示例中,我們監視文件的修改、創建、刪除和重命名操作。
接著,我們訂閱了Changed
、Created
、Deleted
和Renamed
事件,分別在文件發生相應的變化時觸發。在事件處理程序中,我們打印出文件的路徑和變化類型。
最后,我們通過設置EnableRaisingEvents
屬性為true
來啟用文件系統監視,并在控制臺中等待用戶按下q
鍵來退出程序。
這樣,我們就可以使用FileSystemWatcher
類來監視文件系統中文件的變化。