有没有办法获得绝对的java.nio.Path?
我从path3
检索了相对路径Path path3 = path1.relativize(path2);
我想再次path2
和path1
再次path3
。
path1.resolve(path3)
会返回path2
吗?
例如 path1.resolve(path3)
:
如果 path1 是C:\Users\ABC\Documents\NetBeansProjects\JSF Sample\web
path3 是..\..\..\..\Pictures\BxqfOHfIIAApI.png
然后 path2 包含C:\Users\ABC\Documents\NetBeansProjects\JSF Sample\web\..\..\..\..\Pictures\BxqfOHfIIAApI.png
如何获得 path2 ,例如C:\Users\ABC\Pictures\BxqfOHfIIAApI.png
答案 0 :(得分:5)
path1.resolve(path3)
会为您提供一条相当但不一定等于path2的路径。您可能希望改为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"
修改强>: 根据编辑中的其他信息,normalize()正是您想要的。