Re: [請益] 如何監控某個資料夾內檔案是否變動
※ 引述《Ting1024 (無)》之銘言:
: ※ 引述《peanut97 (花生)》之銘言:
: : 方法1:
: : 資料檔一定很大。更何況資料檔1跟資料檔2還要比較。
: : 方法2:
: : 參考.Net Framework 的函數(FileSystemWatcher 類別):
: : 費時間做snapshot,但是他是怎麼做的呢?
: 我會採用DLL injection, 將程式碼
: 注射到 win32 api的
: CreateFile
: ReadFile
: MoveFileEx
: ... 檔案存取相關
: 這幾個函示, 這樣複雜度就是 (1)
: 存取的動作都會經過你的HOOK函示。
: 如果弄成這樣然後上去報告, 應該就會很紅了..
最近公司提出了怪要求,要我評估看看可行性,
解法大概就是所有硬碟都設監控,FileSystemWatcher的監控設在所有硬碟根目錄,
然後子目錄是否一併監控的屬性設成true就可以了,不過感覺這方法真的暴力到糟糕,
是想說windows系統有沒有提供什麼端口,透過註冊給某特定dll檔,
能夠在某些IO動作event時去呼叫註冊的dll檔,不過看到你一文,
大概就確定沒有了,
有某些特殊的需求其實是可以透過win32本身內建機制開放的端口擴充的
(ex.windows shell),
不過也不是全部都有解,不然真的就是得像你說的直接hack win32 api最快.
前陣子也開出一個類似下面的要求 ,
ex. abcdef.某副檔名 對應 abcdef_attach目錄
當你move abcdef.某副檔名 這檔案到其他目錄時 ,要自動 把abcdef_attach目錄
也相對應move到那邊去,如果有人在編輯abcdef_attach裡頭的檔案時,
就會擋os move的操作...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.70.105.149
→
09/04 07:20, , 1F
09/04 07:20, 1F
→
09/04 10:25, , 2F
09/04 10:25, 2F
推
09/04 20:39, , 3F
09/04 20:39, 3F
推
09/04 21:52, , 4F
09/04 21:52, 4F
推
09/05 10:07, , 5F
09/05 10:07, 5F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):