如何从两个绝对路径(或URL)构建Java中的相对路径? [英] How to construct a relative path in Java from two absolute paths (or URLs)?
本文介绍了如何从两个绝对路径(或URL)构建Java中的相对路径?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
/var/data/stuff/xyz.dat
/ var /数据
如何创建使用第二个路径作为其基础的相对路径?在上面的例子中,结果应该是: ./ 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
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? In the example above, the result should be: ./stuff/xyz.dat
解决方案
It's a little roundabout, but why not use URI? It has a relativize method which does all the necessary checks for you.
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"
这篇关于如何从两个绝对路径(或URL)构建Java中的相对路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文