我是新來的Windows編程,我試圖通知文件系統的所有變化(類似於從SysInternals顯示,但通過API的FileMon信息)。對於每個(非網絡,非子系列)驅動器,我最好還是選擇FindFirstChangeNotification還是還有其他更適合的C/C++ API?FindFirstChangeNotification是用於Windows上的文件系統更改通知的最佳API嗎?
17
A
回答
22
FindFirstChangeNotification
是好的,但略多的最終權力,你應該使用ReadDirectoryChangesW.
(事實上,它甚至建議的文件中!)
它不需要一個函數指針,它需要你手動解碼原始緩衝區,它使用Unicode文件名,但它通常更好,更靈活。另一方面,如果你想要做FileMon做的事情,你應該做FileMon做的事情,並使用IFS to create and install a file system filter。
0
還有其他方法可以做到這一點,但其中大部分都需要努力(或從應用程序獲取性能,或者必須阻止線程使用它們等)。如果你不習慣處理函數指針等,FindFirstChangeNotification有點複雜,但它具有讓操作系統爲你完成大部分工作的優點。
-1
您可以使用FileSystemWatcher類。非常高效,但無法與網絡共享驅動器配合使用。
0
實際上FileSystemWatcher可以與共享網絡驅動器完美配合。我現在在一個應用程序中使用它,除其他外,它監視文件系統的變化。 (www.tabbles.net)。
相關問題
- 1. 文件系統通知更改了?
- 2. 如何調試FindFirstChangeNotification獲取的文件更改通知?
- 3. 用於系統通知的Quickblox REST API
- 4. 處理文件系統更改的最佳體系結構?
- 5. 更改推送通知系統的配置文件
- 6. HTML5:API中的文件更改通知?
- 7. 是什麼讓Unix文件系統更加優於Windows文件系統?
- 8. 使用API REST通過文件系統上傳的文件
- 9. WPF上的系統通知
- 10. 在Hadoop文件系統上執行更新的最佳方法是什麼?
- 11. 在Windows上使用Java檢測Samba共享上的文件系統更改
- 12. FindFirstChangeNotification正在通知有關更改兩次
- 13. 活動窗口上是否有Windows系統事件更改?
- 14. 表是否大於文件系統的最大文件大小?
- 15. 遠程Windows系統上的文件IO
- 16. LRU用於文件系統緩存嗎?
- 17. 在文件系統上混合使用RDBMS和文件的最佳實踐
- 18. 什麼是學習Windows生態系統的最佳方式?
- 19. 在XML文件上通知更改
- 20. 跟蹤Windows和Mac中的文件系統更改
- 21. 更改系統文件的權限
- 22. 更改cramfs文件系統的權限
- 23. 如何在OS X中接收文件系統更改的通知?
- 24. windows的通知API
- 25. 什麼API可用於在Windows文件系統上創建驅動器?
- 26. 通知系統
- 27. 什麼是適用於通知系統的設計模式?
- 28. 適用於高負載系統的最佳體系結構
- 29. iPhone上的通知的最佳做法
- 30. Phonegap系統通知插件
我在最後找到了ReadDirectoryChangesW,並且開始研究如何將返回的緩衝區轉換爲可以傳回給我的Java代碼的表單,但它絕對做到了我想要的。 – 2008-09-14 23:23:54