2014-10-30 62 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" 

编辑: 根据您修改的其他信息,规范()正是你想要的。