为了账号安全,请及时绑定邮箱和手机立即绑定

如何从两个绝对路径(或URL)构造Java中的相对路径?

如何从两个绝对路径(或URL)构造Java中的相对路径?

德玛西亚99 2019-07-06 14:52:35
如何从两个绝对路径(或URL)构造Java中的相对路径?给定两条绝对路径。/var/data/stuff/xyz.dat/var/data如何创建使用第二条路径作为基础的相对路径?在上面的例子中,结果应该是:./stuff/xyz.dat
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

这有点迂回,但为什么不使用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在……里面另一个答案.


查看完整回答
反对 回复 2019-07-06
?
偶然的你

TA贡献1841条经验 获得超3个赞

因为Java 7可以使用相对论性方法:

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);
    }}

产出:

stuff/xyz.dat


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 1301 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号