如何用两个绝对路径(或URL)在Java中构造一个相对路径?
给定两个绝对路径,例如
/var/data/stuff/xyz.dat/var/data
如何创建以第二条路径为基础的相对路径?在上面的示例中,结果应为:./stuff/xyz.dat
回答:
有点回旋处,但是为什么不使用URI?它具有相对方法,可以为你进行所有必要的检查。
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"
请注意,文件路径java.nio.file.Path#relativize
自Java 1.7起就存在,如@Jirka Meluzin在其他答案中指出的那样。
以上是 如何用两个绝对路径(或URL)在Java中构造一个相对路径? 的全部内容, 来源链接: utcz.com/qa/408981.html