获取绝对的java.nio.Path

时间:2014-10-30 04:12:08

标签: java file java-8

有没有办法获得绝对的java.nio.Path? 我从path3检索了相对路径Path path3 = path1.relativize(path2); 我想再次path2path1再次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

1 个答案:

答案 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()正是您想要的。