首頁 >後端開發 >C++ >如何使用 FileSystemWatcher 監視 C# 中的檔案變更?

如何使用 FileSystemWatcher 監視 C# 中的檔案變更?

Patricia Arquette
Patricia Arquette原創
2025-01-13 09:15:47406瀏覽

How Can I Monitor File Changes in C# Using FileSystemWatcher?

使用C#的FileSystemWatcher監控檔案變更

在C#應用程式中,您可能需要偵測磁碟上的檔案修改。這可以透過.NET Framework提供的FileSystemWatcher類別輕鬆實現。

使用FileSystemWatcher實作檔案變更偵測

  1. 建立FileSystemWatcher實例: 使用FileSystemWatcher建構子初始化一個實例。將它的Path屬性設定為要監控的目錄或檔案。
  2. 設定監視過濾器: 使用NotifyFilter屬性指定要偵測的變更類型。常用選項包括LastAccess、LastWrite、FileName和DirectoryName。
  3. 篩選檔案類型(可選): 透過設定Filter屬性,將監視操作限制為特定檔案類型。例如,若要僅監視文字文件,請將Filter設定為「*.txt」。
  4. 新增事件處理程序: 註冊事件處理程序以接收文件變更發生時的通知。常見的事件包括Changed、Created、Deleted和Renamed。
<code class="language-csharp">private static void OnChanged(object source, FileSystemEventArgs e)
{
    // 当文件更改、创建或删除时,实现所需的动作。
    Console.WriteLine($"文件: {e.FullPath} {e.ChangeType}");
}

private static void OnRenamed(object source, RenamedEventArgs e)
{
    // 定义在文件重命名时要执行的动作。
    Console.WriteLine($"文件: {e.OldFullPath} 重命名为 {e.FullPath}");
}</code>
  1. 啟動監控: 將EnableRaisingEvents屬性設為true以開始監控。啟用此功能後,指定資料夾或檔案中的任何變更都會觸發相應的事件處理程序。

範例程式碼:

以下程式碼片段示範如何使用FileSystemWatcher監控特定目錄中的文字檔案:

<code class="language-csharp">public void CreateFileWatcher(string path)
{
    // 创建FileSystemWatcher实例。
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = path;
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
    watcher.Filter = "*.txt";

    // 附加事件处理程序以响应文件更改。
    watcher.Changed += OnChanged;
    watcher.Created += OnChanged;
    watcher.Deleted += OnChanged;
    watcher.Renamed += OnRenamed;

    // 开始监控。
    watcher.EnableRaisingEvents = true;
}</code>

透過實現此機制,C#應用程式可以有效地追蹤和回應磁碟上的檔案修改,從而實現即時資料同步、版本控制和其他關鍵操作。

以上是如何使用 FileSystemWatcher 監視 C# 中的檔案變更?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn