java用符号断开取前面_java-如何读取断开的符号链接指向的路径?
如果symlink是與符號(hào)鏈接相對(duì)應(yīng)的File對(duì)象,則:
File target = symlink.getCanonicalPath();
…成功返回它指向的目標(biāo). Paths#toRealPath()在相同情況下也可以使用.
但是,如果符號(hào)鏈接斷開(kāi)(懸掛),則以上兩個(gè)API均無(wú)法返回表示其指向的(不存在的)東西的文件(或路徑).
我正在編寫一個(gè)工具,即使對(duì)于懸掛的符號(hào)鏈接,也需要能夠讀取這些值.我使用什么API獲取符號(hào)鏈接指向的文件或目錄(無(wú)論符號(hào)鏈接正確還是損壞)?
更新
根據(jù)接受的答案,可以使用以下方法獲得符號(hào)鏈接的目標(biāo)(甚至是斷開(kāi)的鏈接):
Path target = Files.readSymbolicLink(Paths.get("/some/directory/symlink"));
…如果目標(biāo)是相對(duì)的,則可以通過(guò)執(zhí)行以下操作根據(jù)找到符號(hào)鏈接本身的位置取消引用:
Paths.get("/some/directory/symlink").resolveSibling(".").resolve(target);
解決方法:
您可以使用Java的nio文件系統(tǒng)api:
Path target = Files.readSymbolicLink(Paths.get("/symlink"));
標(biāo)簽:java
來(lái)源: https://codeday.me/bug/20191026/1935007.html
總結(jié)
以上是生活随笔為你收集整理的java用符号断开取前面_java-如何读取断开的符号链接指向的路径?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java课程设计总结迷宫_Java课程设
- 下一篇: java二位数组biaoda_1