2014-10-30 28 views
2

有沒有辦法獲得絕對java.nio.Path? 我有一個相對路徑path3檢索自Path path3 = path1.relativize(path2); 我想再次獲得path2path1path3獲取絕對java.nio.Path

path1.resolve(path3)返回path2

例如path1.resolve(path3)
如果路徑1C:\Users\ABC\Documents\NetBeansProjects\JSF Sample\web
path3時..\..\..\..\Pictures\BxqfOHfIIAApI.png
然後路徑2包含C:\Users\ABC\Documents\NetBeansProjects\JSF Sample\web\..\..\..\..\Pictures\BxqfOHfIIAApI.png

如何獲得路徑2C:\Users\ABC\Pictures\BxqfOHfIIAApI.png

回答

4

path1.resolve(path3)將爲您提供一條等價路徑,但不一定等於路徑2。您可能想改爲使用path1.resolve(path3).normalize()

path1 = Paths.get("/var"); 
path2 = Paths.get("/tmp"); 

path3 = path1.relativize(path2); // path3 is "../tmp" 
path4 = path1.resolve(path3);  // path4 is "/var/../tmp" 

path5 = path4.normalize();  // path5 is "/tmp" 

編輯: 根據您修改的其他信息,規範()正是你想要的。