.Net框架類庫中的FileSystemWatcher如它的名稱一樣是一個用於監視文件系統變化的一個控制項。使用 FileSystemWatcher 監視指定目錄中的更改。可監視指定目錄中的文件或子目錄的更改。可以創建一個組件來監視本地電腦、網路驅動器或遠程電腦上的文件。 若要監視所有文件中的更改 ...
.Net框架類庫中的FileSystemWatcher如它的名稱一樣是一個用於監視文件系統變化的一個控制項。使用 FileSystemWatcher 監視指定目錄中的更改。可監視指定目錄中的文件或子目錄的更改。可以創建一個組件來監視本地電腦、網路驅動器或遠程電腦上的文件。
若要監視所有文件中的更改,請將 Filter 屬性設置為空字元串 ("") 或使用通配符(“*.*”)。若要監視特定的文件,請將 Filter 屬性設置為該文件名。例如,若要監視文件 MyDoc.txt 中的更改,請將 Filter 屬性設置為“MyDoc.txt”。也可以監視特定類型文件中的更改。例如,若要監視文本文件中的更改,請將 Filter 屬性設置為“*.txt”。
可監視目錄或文件中的若幹種更改。例如,可監視文件或目錄的 Attributes、LastWrite 日期和時間或 Size 方面的更改。通過將 NotifyFilter 屬性設置為 NotifyFilters 值之一來達到此目的。
可監視文件或目錄的重命名、刪除或創建。例如,若要監視文本文件的重命名,請將 Filter 屬性設置為“*.txt”,並使用為其參數指定的 Renamed 來調用 WaitForChanged 方法。
下麵的示例使用FileSystemWatcher監視當前應用程式下的所有.txt文本文件的變更:
//定義FileSystemWatcher對象
FileSystemWatcher fsw = null;
public frm12FileSystemWatcher()
{
InitializeComponent();
//實例化一個FileSystemWatcher對象
fsw = new FileSystemWatcher();
//設置要監視的目錄的路徑,當前程式運行的目錄
fsw.Path = Application.StartupPath;
//確定在目錄中監視所有的.txt文件
fsw.Filter = "*.txt";
//監視的目錄中創建文件或目錄時引發的事件
fsw.Created += new FileSystemEventHandler(fsw_Created);
//監視的目錄中刪除文件或目錄時引發的事件
fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
//監視的目錄中改變文件或目錄時引發的事件
//監視的目錄中的文件或目錄的大小、系統屬性、
//上次寫入時間、上次訪問時間或安全許可權進行更改時
//可以通過設置可組合 NotifyFilters 枚舉的成員,以同時監視多種類型的更改
fsw.Changed += new FileSystemEventHandler(fsw_Changed);
}
void fsw_Changed(object sender, FileSystemEventArgs e)
{
//由於不能跨線程訪問,通匿名方法將顯示操作交給主線程
this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被修改"); });
}
void fsw_Created(object sender, FileSystemEventArgs e)
{
//由於不能跨線程訪問,通匿名方法將顯示操作交給主線程
this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被創建"); });
}
void fsw_Deleted(object sender, FileSystemEventArgs e)
{
//由於不能跨線程訪問,通匿名方法將顯示操作交給主線程
this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:" + e.FullPath + "被刪除"); });
}
private void btnStart_Click(object sender, EventArgs e)
{
//監視開始
fsw.EnableRaisingEvents = true;
//創建一個文件,並寫入當前的日期時間
File.AppendAllText("textFile.txt", DateTime.Now.ToString());
//修改文件,寫入當前的日期時間
File.AppendAllText("textFile.txt", DateTime.Now.ToString());
//刪除文件
File.Delete("textFile.txt");
}
轉自:張果老師 原文地址:http://www.cnblogs.com/best/archive/2011/07/30/2122088.html