给定两个绝对路径,例如
/var/data/stuff/xyz.dat
/var/data
如何创建以第二条路径为基础的相对路径?在上面的例子中,结果应该是:./stuff/xyz.dat
最佳答案
有点迂回,但为什么不使用URI呢?它有一个 relativize 方法,可以为你做所有必要的检查。
String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"
请注意,正如 @Jirka Meluzin 所指出的,自 Java 1.7 以来,对于文件路径,java.nio.file.Path#relativize
在 the other answer .
关于java - 如何从两个绝对路径(或 URL)构造 Java 中的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204784/