我跟隨Watching a Directory for Changes Java7 nio2教程遞歸監控使用代碼示例WatchDir.java的目錄的全部內容。Java7 WatchService - 訪問拒絕錯誤試圖刪除遞歸觀看的嵌套目錄(僅限Windows)
儘管在Linux和Mac上,在Windows上(在Vista和7上測試過),使用Windows資源管理器嘗試刪除嵌套的監視文件夾失敗,並顯示類似於「訪問被拒絕:您需要執行此操作的權限「當一個文件存在於其中一個嵌套目錄中時。
例如,如果我看在Windows嵌套文件夾樹:
-- Folder A
-- Folder A1
-- File F
,並試圖刪除文件夾A,我得到的表示拒絕訪問錯誤。然而,它工作正常,如果我:
- 刪除文件夾A1然後再刪除文件夾A
- 刪除文件F然後再刪除文件夾A
是否有使用NIO2 WatchService遞歸觀看的方式嵌套目錄,但不能像一個程序訪問嵌套文件一樣行事?
感謝您提供有關特定於Windows的FILE_TREE修飾符的註釋。在Java 7 Bug數據庫的相關錯誤中有類似的評論(我錯過了):http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=76a42b61021a94ffffffffa049f7587fd4149?bug_id=6972833 – 2011-06-09 23:04:47
另外請注意,在Eclipse ,我不得不將由rt.jar上的訪問限制引起的錯誤降低到警告。請參閱http://lkamal.blogspot.com/2008/09/eclipse-access-restriction-on-library.html – 2011-06-10 01:22:31