2014-09-24 144 views
1

我有一個指向磁盤上文件的路徑,如:C:\folder\dir\dir2\file.txt。在代碼中,如果在處理該文件時引發異常,它將輸出整個路徑。理想情況下,最好不要打印整個目錄,而應該像../../dir2/file.txt那樣。Java Nio相對路徑的絕對路徑

看來我應該可以用java.nio.file relativize方法,我只是不知道如何。

Path file; // C:\folder\dir\di2\file.txt 
file.relativize(file.getParent()); 

我接近這個錯誤的方式,我敢肯定,只是不積極如何實現我想要的。

回答

5

獲取當前工作目錄

Path pwd = Paths.get("").toAbsolutePath(); 

,然後relativize目標Path

Path relative = pwd.relativize(target); 
+0

啊哈,我想我明白了,謝謝。 – joshft91 2014-09-24 19:32:52