有没有办法获得绝对的 java.nio.Path ?
我有一个从 Path path3 = path1.relativize(path2);
检索到的相对路径 path3
我想再次从 path1
和 path3
获取 path2
。
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
最佳答案
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() 正是您想要的。
关于java - 获取绝对 java.nio.Path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644933/