我試圖找到一種方法來跟蹤文件,即使它們在文件系統中被移動或重命名。用於跟蹤Java中文件更改的文件ID?
我想到的一個想法是在Java 7中使用新的UserDefinedFileAttributeView,並創建一個自定義文件屬性作爲一種自定義ID。我認爲這可能適用於不同的平臺(主要是Windows和Mac)。但我無法讓它工作。即使嘗試此頁上的示例 - http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html - 當我到達此行時:
UserDefinedFileAttributeView view = Files.getFileAttributeView(file,UserDefinedFileAttributeView.class);
我只爲視圖變量獲取一個空值,然後程序以一個空指針異常停止。
然後我發現至少有一種對Mac來說可能更簡單的方法:使用BasicFileAttributes fileKey屬性。我試過這個,即使我移動文件或重命名文件,fileKey似乎仍然保持不變。然而,它也說這個功能是依賴於平臺的,我記得在某個地方看到它不適用於Windows ...
因此,首先,fileKey方法是在Mac上執行此操作的穩定方法嗎?如果是這樣,我可以爲Windows的相同功能做些什麼?任何人都知道爲什麼我在UserDefinedFileAttributeView上得到空值?因爲如果我能夠實現這個目標,我認爲它應該是跨平臺的。
這不是一個需要超級強大的,可擴展的,它只是我正在開發一個小的輔助應用程序,但它需要移動或重命名時要至少可靠識別文件...
我可以用插件來解決這個問題,但有趣的是,你有這個工作。謝謝,我會在有機會的時候嘗試一下。 – Anders
UserDefinedFileAttributeView如何在Windows中完成存儲? – Shrenik