2011-11-20 67 views
8

有沒有用於監聽目錄的庫?我的意思是我有一個目錄,我想知道它的任何變化。C#中的目錄監聽器

例如:當某些文件在目錄中被刪除或創建時,我想要被通知。我不想使用計時器並手動檢查目錄以檢測任何更改。

+0

我已經編輯了你的問題盡我所能,但我無法理解「並檢查目錄發生了不同的東西等」,所以我不能用正確的英文重新編寫它。 –

+0

@JonSkeet歡呼編輯。 「定時器事件檢查目錄,如果發生了像創建或刪除文件」;) –

+1

看看這個最終的編輯是否反映你的意思。 –

回答

21

聽起來就像你正在尋找FileSystemWatcher。請參閱文檔以獲取完整示例。

+0

「Visual Basic 2010程序員參考」一書中提到了下面的內容(863頁):__ FileSystemWatcher似乎有一些問題。有時它會被壓倒,錯過應該看到的變化,並且在某些情況下似乎會感到困惑,並停止引發事件或引發重複事件。控制將有希望隨着時間的推移而改善,但現在,謹慎使用.__ – JohnyL

+0

@JohnyL:它肯定會被嚴重使用,並且*需要謹慎使用,但這聽起來對我來說過於寬泛。 –

+0

我想從Windows API代碼包中使用ShellObjectWatcher,但是 - 唉 - 它不會處理對象,進程只是停留在Process Explorer中。所以,我決定自己學習SHChangeNotifyRegister(哪個代碼包依賴)。我使用[this](https://dotnettoys.wordpress.com/2012/05/28/daily-problems-how-to-write-a-filewatcher-in-three-possible-ways-today/)文章獲取信息。 – JohnyL