使用filesystemwatcher可以監視檔案的更改。事件在建立、重新命名、刪除和更改檔案時觸發。這可用於如下場景:需要對檔案的變更做出反應,例如,伺服器上傳檔案時,或檔案快取在記憶體中,而快取需要在檔案更改時失效。
因為filesystemwatcher易於使用,所以下面直接開始乙個示例。filemonitor的示例**利用以下命名空間:
system
system.io
示例**在watchfiles()方法中開始觀察檔案。使用filesystemwatcher的建構函式時,可以提**該觀察的目錄。還可以提供乙個過濾器,只過濾出與過濾表示式匹配的特定檔案。當設定屬性includesubdirectories時,可以定義是否應該只觀察指定目錄中的檔案,或者是否還應該觀察子目錄中的檔案。對於created、changed、deleted和renamed事件,提供事件處理程式。所有這些事件的型別都是filesystemeventhandler,只有renamed事件的型別是renamedeventhandler。renamedeventhandler派生自filesystemeventhandler,提供了事件的附加資訊:
private static void watchfiles(string path, string filter)
;s_watcher.created += onfilechanged;
s_watcher.changed += onfilechanged;
s_watcher.deleted += onfilechanged;
s_watcher.renamed += onfilerenamed;
s_watcher.enableraisingevents = true;
console.writeline("watching file changes...");
}
因檔案變更而接收到的資訊是filesystemeventargs型別。它包含了變更檔案的名字,這種變更是乙個watcherchangetypes型別的列舉:
private static void onfilechanged(object sender, filesystemeventargs e)
");}
重新命名檔案時,通過renamedeventargs引數收到其他資訊。這個型別派生自filesystemeventargs,它定義了檔案原始名稱的額外資訊:
private static void onfilerenamed(object sender, renamedeventargs e)
to ");
}
指定要觀察的資料夾和"*.txt"作為過濾器,啟動應用程式,建立檔案sample1.txt,新增內容,把它重新命名為sample2.txt,最後刪除它,輸出如下。
watching file changes...
file 新建文字文件.txt created
file 新建文字文件.txt renamed to sample1.txt
file sample1.txt changed
file sample1.txt changed
file sample1.txt renamed to sample2.txt
file sample2.txt deleted
完整**:
using system;
using system.io;
using system.threading.tasks;
namespace filemonitor
); await task.whenall(task);
console.readkey();
}private static void watchfiles(string path, string filter)
;s_watcher.created += onfilechanged;
s_watcher.changed += onfilechanged;
s_watcher.deleted += onfilechanged;
s_watcher.renamed += onfilerenamed;
s_watcher.enableraisingevents = true;
console.writeline("watching file changes...");
}private static void onfilechanged(object sender, filesystemeventargs e)
");}
private static void onfilerenamed(object sender, renamedeventargs e)
to ");}}
}
觀察日記7
觀察日記7 2018年5月23日 星期三 小雨轉陰 觀察記錄 今天我更加細緻地觀察了小雞的進食狀況 它們圍在 飯盒 旁,啄一下食物,又站起來,在一邊逛逛。接著望望四周,瞧瞧那些對自己特別感興趣的,比自己多了兩條 腿 的動物們。好像在想,它們 怎麼老是盯著我看每次都看了一回,又走了,接著又傳來一陣陣朗...
Win7更改資料夾許可權
win7系統設定當前使用者管理員使用許可權 教程 看了這個以後再也不用修改檔案許可權了 我們對系統中某個資料夾進行訪問 修改 替換或刪除時,經常會遇到需要取得當前用 帳 戶管理員許可權問題,這個問題對於 菜鳥 級別的電腦初學者似乎是個不可逾越的障礙,常常因為這個問題而感到十分棘手和頭疼,雖然現在有比...
git 撤銷更改的檔案
在沒有git add之前 1.撤銷所有更改 git checkout 2.撤銷指定檔案的更改 git checkout file.txt git add之後 git reset head file.txt git push 之後 git reset hard comitthash git log o...