3
如果symlink
是對應於一個符號鏈接文件對象,則:如何讀取斷開的符號鏈接指向的路徑?
File target = symlink.getCanonicalPath();
…成功返回它指向的目標。 Paths#toRealPath()
也適用於相同的情況。
但是,如果符號鏈接斷開(懸擺),則上述兩個API均無法返回代表它指向的(不存在的)事件的File
(或Path
)。
我正在寫一個工具,需要能夠讀取這些值,即使對於懸掛符號鏈接。我用什麼API來獲取符號鏈接指向的文件或目錄(不管符號鏈接是正確還是破壞)?
更新基於接受的答案,可以使用獲得的符號鏈接的目標(甚至破一個):
Path target = Files.readSymbolicLink(Paths.get("/some/directory/symlink"));
…如果target
是那麼相對的,你可以去參考它的基礎上放置符號本身是做找到位置的內容:
Paths.get("/some/directory/symlink").resolveSibling(".").resolve(target);