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