當某個文件操作以某種方式被調用時(例如打開或關閉),是否可以在操作系統發出請求之前處理它,並且如果可能的話取消.NET?如果.NET沒有這樣的能力,我該怎麼做?是否有可能使用.NET跟蹤文件操作?
回答
你問做什麼可以做。例如,病毒掃描程序一直都在使用它。您可以使用Process Monitor輕鬆監控文件活動。您也可以使用FileSystemWatcher Class在C#中進行編程。但是試圖阻止程序打開或試圖阻止程序訪問文件不能在C#中完成。您將需要使用C或C++。您需要創建一個File System Filter Driver。這是一個複雜的事情,但它正是你需要的。引用MSDN:
A file system filter driver intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, the filter driver can extend or replace functionality provided by the original target of the request. Examples of file system filter drivers include anti-virus filters, backup agents, and encryption products.
如果需要,您可以掛接Windows API。看看這樣做,在.NET/C#:
的Sysinternals提供了一個免費的工具,所謂的進程監視器,一個功能是附加到任意的Windows進程(包括.NET應用程序)和捕獲系統調用,包括文件打開,關閉,讀取等。
您可以在Process Monitor Download Page下載。
編輯
當我重讀你的問題,我看到你問攔截,並可能抵消這樣的操作。我相信FileSystemWatcher
班將是您最好的選擇,儘管我不認爲它可以單方面取消文件操作 - 您需要建立某種合作機制來指示呼叫方放棄其操作。
我很確定你必須進入內核的這種操作,我很肯定這意味着你需要用C代碼。看看File System Drivers。
更新:此SO link可能會有所幫助。
更新:加入谷歌搜索Windows File System Drivers
ALSO What is a good resource to get started with Windows file system driver development?
- 1. 是否有可能跟蹤文件一次打開多少次?
- 2. 是否有可能在Ruby中「跟蹤」文件?
- 3. 是否有可能跟蹤上傳的文件位置?
- 4. 是否有可能使用.NET來跟蹤每個http/url重定向?
- 5. 是否有可能跟蹤使用代理網站的用戶?
- 6. 是否有可能使用array_walk_recursive跟蹤數組中的位置?
- 7. 是否有可能在iDevice中跟蹤用戶活動
- 8. 使用SignalR時跟蹤用戶操作
- 9. 使用omniture sitecatalyst跟蹤用戶操作
- 10. 使用xcart是否有可能使用谷歌分析跟蹤成功購買?
- 11. 是否有可能跟蹤所有傳出的WCF呼叫?
- 12. 是否有可能跟蹤目標手機沒有網絡
- 13. 是否有可能從hg內部的.hg目錄中跟蹤文件?
- 14. 是否有可能只跟蹤一個git分支中的文件夾?
- 15. 是否有可能更改JBoss 5.1寫入其引導跟蹤的文件夾?
- 16. .NET跟蹤文件不能正常工作
- 17. 是否可以使用Google Analytics從一個文件跟蹤子文件夾?
- 18. 使用操作上下文跟蹤相關事件的問題
- 19. 使用glimpse返回文件的跟蹤控制器操作
- 20. 是否有可能使用java製作操作系統?
- 21. 是否有可能使用「AND」操作符作爲「ConditionalAttribute」?
- 22. 跟蹤文本文件是否有或沒有特定符號
- 23. 是否有可能在.NET
- 24. 文件上傳/操作/下載不使用服務器:是否有可能?
- 25. github - 是否有可能跟蹤我的回購訪問者?
- 26. 是否有可能跟蹤腳本運行的總時間?
- 27. 是否有可能跟蹤Xcode C++編譯依賴關係?
- 28. 是否有可能跟蹤另一個Android設備
- 29. 是否有可能跟蹤對MATLAB中變量的更改?
- 30. 是否有可能跟蹤ObjectContext.SaveChanges的進度?
鏈接不再有效。 –
@JamesWilkins它一定是暫時的。這兩個鏈接都爲我工作。最好 – kenny