2008-08-26 97 views
2

這是場景:處理文件系統更改的最佳體系結構?

我正在寫一個應用程序,它將監視特定目錄中的任何更改。這個目錄將充斥着數千個文件,每個文件每個都有一個「幾乎」唯一的GUID。文件格式是這樣的:

GUID.dat其中GUID == xxxxxxxxxxxxxxxxxxxxxxxxxxxxx (內部的內容是不相關的,但它只是文本數據)

我的應用程序將是具有一個單一的文本框中形式它顯示所有正在實時添加和刪除的文件。每次有新文件進來時,我都必須用這個文件更新文本框,但是我必須首先確保這個半獨一無二的GUID真的是唯一的,如果是,用這個新文件更新文本框。

當從該目錄中刪除文件時,確保它存在,然後刪除它,相應地更新文本框。

問題是我一直在使用.NET filewatcher,似乎有一個內部緩衝區在每次(buffersize + 1)文件進入時都會被炸燬。我還試圖保留內部列表在我的應用程序,只是添加每一個文件進來,但後來做獨特的GUID檢查,但沒有骰子。

回答

3

一對夫婦的事情,我有我的頭:

  • 如果GUID是獨特,豈不覆蓋具有相同名稱的文件,或者是基於查詢的支票做一些外部行動(例如檢查檔案)? (即這是YAGNI的時刻嗎?)
  • 我以前用過FileSystemWatcher以前都有相當不錯的成功,你能否給我們一些想法你的實際做事情?
  • 當您在使用自定義列表時說「無骰子」時,出現了什麼問題?你如何在沒有FileSystemWatcher的情況下檢查文件系統更改?

對不起沒有答案呢,只是想了解更多有關該問題的:)

2

我建議你去看看SHChangeNotify API調用,它可以通知你各種貝殼事件的。要監視文件創建和刪除活動,您可能需要特別注意SHCNE_CREATE和SHCNE_DELETE參數。

相關問題