有没有办法获取绝对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
如何像C:\Users\ABC\Pictures\BxqfOHfIIAApI.png
一样获得 path2
最佳答案
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()正是您想要的。