How to construct a relative path in Java from two absolute paths (or URLs)?

前端 未结 22 2626
小蘑菇
小蘑菇 2020-11-22 10:30

Given two absolute paths, e.g.

/var/data/stuff/xyz.dat
/var/data

How can one create a relative path that uses the second path as its base?

22条回答
  •  一生所求
    2020-11-22 10:58

    Since Java 7 you can use the relativize method:

    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    public class Test {
    
         public static void main(String[] args) {
            Path pathAbsolute = Paths.get("/var/data/stuff/xyz.dat");
            Path pathBase = Paths.get("/var/data");
            Path pathRelative = pathBase.relativize(pathAbsolute);
            System.out.println(pathRelative);
        }
    
    }
    

    Output:

    stuff/xyz.dat
    

提交回复
热议问题