從檔案中捕獲事件的 C# 程式


歡迎閱讀我們關於建立 C# 程式以從檔案中捕獲事件的綜合指南。無論您是 C# 程式設計初學者還是中級程式設計師,本文都將為您提供有效使用 C# 進行檔案事件處理的知識和技能。

檔案事件簡介

檔案事件是系統級通知,當建立、修改、刪除或重新命名檔案或目錄時發生。監控這些事件允許程式對檔案系統中的更改做出反應,這在各種場景中都非常有用,例如日誌監控、檔案同步等等。

瞭解 FileSystemWatcher

在 C# 中,FileSystemWatcher 類用於偵聽檔案系統中的更改。它可以監視檔案和目錄中的更改,並在發生此類更改時觸發事件。

FileSystemWatcher 提供多個事件,包括:

  • Created − 當在指定路徑中建立檔案或目錄時發生。

  • Changed − 當指定路徑中的檔案或目錄發生更改時發生。

  • Deleted − 當從指定路徑中刪除檔案或目錄時發生。

  • Renamed − 當指定路徑中的檔案或目錄被重新命名時發生。

建立 C# 程式以捕獲檔案事件

現在,讓我們建立一個使用 FileSystemWatcher 監視特定目錄並在建立、修改或刪除檔案時列印訊息的 C# 程式。

using System;
using System.IO;

class Program {
   static void Main() {
      // Specify the directory to monitor
      string directory = @"C:\temp";
      
      // Create a new FileSystemWatcher
      FileSystemWatcher watcher = new FileSystemWatcher(directory);
      
      // Register event handlers
      watcher.Created += (s, e) => Console.WriteLine($"File created: {e.FullPath}");
      watcher.Changed += (s, e) => Console.WriteLine($"File changed: {e.FullPath}");
      watcher.Deleted += (s, e) => Console.WriteLine($"File deleted: {e.FullPath}");
      
      // Start monitoring
      watcher.EnableRaisingEvents = true;
      
      // Wait for user to quit program
      Console.WriteLine("Press 'q' to quit the sample.");
      while (Console.Read() != 'q') ;
   }
}

在這個程式中,我們首先指定要監視的目錄。然後,我們為該目錄建立一個 FileSystemWatcher,併為 Created、Changed 和 Deleted 事件註冊事件處理程式。每個事件處理程式都是一個 lambda 函式,它將訊息列印到控制檯。然後,我們將 EnableRaisingEvents 設定為 true 以開始監控。

高階 FileSystemWatcher 功能

FileSystemWatcher 類還提供高階功能,可以更精細地控制檔案監控。例如,您可以使用 Filter 屬性指定要監視的檔案型別。您還可以使用 NotifyFilter 屬性指定要監視的更改型別,例如檔案大小、上次寫入時間或安全設定的更改。

結論

在本教程中,我們學習瞭如何使用 FileSystemWatcher 類建立 C# 程式來捕獲檔案事件。此類提供了一個簡單而強大的工具來監控檔案系統中的更改,使您的應用程式能夠即時響應檔案或目錄的建立、修改、刪除等等。

雖然我們已經介紹了基礎知識,但 FileSystemWatcher 中還有更多高階功能值得探索。您可以微調要監視的更改型別或要監視的檔案型別,從而更精細地控制檔案系統監視任務。

監控檔案事件是許多應用程式中的常見需求,而 C# 透過其內建類和事件驅動程式設計模型使此任務變得簡單明瞭。通過了解如何使用 FileSystemWatcher,您已獲得了 C# 程式設計工具包中寶貴的工具。

更新於:2023年7月24日

169 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告