逐步解說:回應檔案系統事件
更新:2007 年 11 月
這個頁面中的程序示範如何建立 FileSystemWatcher 元件、將元件指向本機電腦上的目錄,然後使用 Filter 屬性,只監看文字檔的變更。您將建立事件處理常式,該事件處理常式會在 Created 事件和 Changed 事件引發時回應,而您也會使用表單來顯示由這些事件所產生的告知。
在以下程序中,您會建立 Windows Form 和 FileSystemWatcher 元件執行個體,以共同用於回應目錄層次的事件。
注意事項: |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
建立應用程式
若要建立應用程式所需的表單和元件
從 [新增專案] 對話方塊,建立 Visual Basic 或 Visual C# [Windows 應用程式],然後將它命名為 MyWatcher。
從 [工具箱] 中的 [Windows Form] 索引標籤拖曳兩個 Label 控制項到設計工具介面。
按一下 [工具箱] 中的 [元件] 索引標籤,接著拖曳 FileSystemWatcher 到元件的設計工具介面。這個元件會預設值為 FileSystemWatcher1。
監看目錄
在以下程序中,您將為元件設定幾個屬性,以決定它要監看哪些部分。這些設定會使元件監看本機電腦上的指定目錄,以及監看副檔名為 .txt 的檔案建立。
若要為您的 FileSystemWatcher 元件設定屬性
按一下您在之前程序中建立的 FileSystemWatcher 元件,接著在 [屬性] 視窗中檢視它的屬性。
將元件的名稱設定為 myWatcher。
使用 Path 屬性將 FileSystemWatcher 元件設定為監看本機電腦上的目錄。例如,在執行 Microsoft Windows 2000 的電腦上,您可能會將下列內容輸入 Path 屬性,以便將元件設定為監看 [我的文件] 目錄:
C:\Documents and Settings\yourusername\My Documents\
秘訣 為方便使用這個範例,您可以任意使用本機電腦上的任何目錄。
將 Filter 屬性設定為 *.txt,以讓元件只監看副檔名為 .txt 的檔案。
處理所發生的事件
在以下程序中,您將為元件定義兩個事件處理常式,而這兩個事件處理常式會定義在引發 Changed 和 Created 事件時的處理步驟。
若要設定您的元件
按兩下 FileSystemWatcher 元件。隨即會出現程式碼編輯器,以及 Changed 事件的預設事件處理常式。
注意事項: 如需詳細資訊,請參閱在 Windows Form 中建立事件處理常式。
使用下列程式碼來顯示簡單的文字字串,用以驗證是否有引發事件:
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; }
為 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."; }
儲存所有檔案,接著建置並執行您的應用程式。
測試元件
在以下程序中,您將手動變更元件正在監看的目錄,如此一來就可強制事件處理常式引發 Changed 和 Created 事件。
若要測試您的 FileSystemWatcher 元件
執行您在先前程序中建立的應用程式。
使用 [Windows 檔案總管],找出您設定 FileSystemWatcher 元件監看的目錄。
啟動 [記事本],然後建立新的文字檔。將這個檔案儲存於您在步驟 2 找到的目錄中並關閉檔案。
注意事項: 回到表單。這時您應在標籤中看到建立的訊息。
開啟您建立的文字檔、輸入幾行文字,然後再儲存一次。
注意事項: 這應該會引發 Changed 事件,並執行您所定義的處理常式。
回到表單。這時您應在標籤中看到變更的訊息。
請參閱
工作
HOW TO:建立 FileSystemWatcher 元件執行個體