共用方式為


逐步解說:回應檔案系統事件

更新:2007 年 11 月

這個頁面中的程序示範如何建立 FileSystemWatcher 元件、將元件指向本機電腦上的目錄,然後使用 Filter 屬性,只監看文字檔的變更。您將建立事件處理常式,該事件處理常式會在 Created 事件和 Changed 事件引發時回應,而您也會使用表單來顯示由這些事件所產生的告知。

在以下程序中,您會建立 Windows Form 和 FileSystemWatcher 元件執行個體,以共同用於回應目錄層次的事件。

注意事項:

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

建立應用程式

若要建立應用程式所需的表單和元件

  1. 從 [新增專案] 對話方塊,建立 Visual Basic 或 Visual C# [Windows 應用程式],然後將它命名為 MyWatcher。

  2. 從 [工具箱] 中的 [Windows Form] 索引標籤拖曳兩個 Label 控制項到設計工具介面。

  3. 按一下 [工具箱] 中的 [元件] 索引標籤,接著拖曳 FileSystemWatcher 到元件的設計工具介面。這個元件會預設值為 FileSystemWatcher1。

監看目錄

在以下程序中,您將為元件設定幾個屬性,以決定它要監看哪些部分。這些設定會使元件監看本機電腦上的指定目錄,以及監看副檔名為 .txt 的檔案建立。

若要為您的 FileSystemWatcher 元件設定屬性

  1. 按一下您在之前程序中建立的 FileSystemWatcher 元件,接著在 [屬性] 視窗中檢視它的屬性。

  2. 將元件的名稱設定為 myWatcher。

  3. 使用 Path 屬性將 FileSystemWatcher 元件設定為監看本機電腦上的目錄。例如,在執行 Microsoft Windows 2000 的電腦上,您可能會將下列內容輸入 Path 屬性,以便將元件設定為監看 [我的文件] 目錄:

    C:\Documents and Settings\yourusername\My Documents\
    
    秘訣

    為方便使用這個範例,您可以任意使用本機電腦上的任何目錄。

  4. Filter 屬性設定為 *.txt,以讓元件只監看副檔名為 .txt 的檔案。

處理所發生的事件

在以下程序中,您將為元件定義兩個事件處理常式,而這兩個事件處理常式會定義在引發 ChangedCreated 事件時的處理步驟。

若要設定您的元件

  1. 按兩下 FileSystemWatcher 元件。隨即會出現程式碼編輯器,以及 Changed 事件的預設事件處理常式。

    注意事項:

    如需詳細資訊,請參閱在 Windows Form 中建立事件處理常式

  2. 使用下列程式碼來顯示簡單的文字字串,用以驗證是否有引發事件:

    Private Sub myWatcher_Changed(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Changed
       Me.Label1.Text = "Changes made to: " & e.FullPath
    End Sub
    
    private void myWatcher_Changed(object sender, 
       System.IO.FileSystemEventArgs e)
    {
       label1.Text = "Changes made to: " + e.FullPath;
    }
    
  3. Created 事件建立事件處理常式,指定應用程式在元件引發這個事件時應執行的動作。如需建立事件處理常式的詳細資訊,請參閱 HOW TO:使用設計工具建立事件處理常式。加入下列程式碼來顯示新建立檔案的完整路徑。完成之後,您的程式碼應該如下列範例所示。

    Private Sub myWatcher_Created(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Created
       Me.Label2.Text = "The file: " & e.FullPath & _
          " has been added to your directory"
    End Sub
    
    private void myWatcher_Created(object sender,
       System.IO.FileSystemEventArgs e)
    {
       label2.Text = "The file: " + e.FullPath + 
          " has been added to your directory.";
    }
    
  4. 儲存所有檔案,接著建置並執行您的應用程式。

測試元件

在以下程序中,您將手動變更元件正在監看的目錄,如此一來就可強制事件處理常式引發 ChangedCreated 事件。

若要測試您的 FileSystemWatcher 元件

  1. 執行您在先前程序中建立的應用程式。

  2. 使用 [Windows 檔案總管],找出您設定 FileSystemWatcher 元件監看的目錄。

  3. 啟動 [記事本],然後建立新的文字檔。將這個檔案儲存於您在步驟 2 找到的目錄中並關閉檔案。

    注意事項:

    這應該會引發 CreatedChanged 事件,並執行您所定義的處理常式。

  4. 回到表單。這時您應在標籤中看到建立的訊息。

  5. 開啟您建立的文字檔、輸入幾行文字,然後再儲存一次。

    注意事項:

    這應該會引發 Changed 事件,並執行您所定義的處理常式。

  6. 回到表單。這時您應在標籤中看到變更的訊息。

請參閱

工作

HOW TO:建立 FileSystemWatcher 元件執行個體

概念

監視檔案系統事件簡介

其他資源

Label 控制項 (Windows Form)