给定两条绝对路径,例如
/var/data/stuff/xyz.dat
/var/data
如何创建以第二个路径为基础的相对路径?在上面的示例中,结果应该是:./stuff/xyz.dat
给定两条绝对路径,例如
/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"
请注意,从Java1.7开始,文件路径有java.nio.file.Path#relativize
个,正如the other answer中的@Jirka Meluzin所指出的.