首页 > Java > java教程 > 如何在 Java 中从两个绝对路径构造相对路径?

如何在 Java 中从两个绝对路径构造相对路径?

DDD
发布: 2024-12-07 07:20:15
原创
583 人浏览过

How Can I Construct a Relative Path from Two Absolute Paths in Java?

Java 中从绝对路径构建相对路径

考虑从两个绝对路径构建相对路径的挑战。例如,给定这些绝对路径:

/var/data/stuff/xyz.dat
/var/data
登录后复制

所需的相对路径(以第二条路径为基础)是:

./stuff/xyz.dat
登录后复制

如何在 Java 中有效实现这一点?

使用 URI 的解决方案

要解决这个问题,请考虑使用 Java 的 URI 类。 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"
登录后复制

使用 Java 1.7 路径的解决方案

如果您的 Java 版本是 1.7 或稍后,您还可以利用 java.nio.file.Path.

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";

Path basePath = Paths.get(base);
Path absPath = Paths.get(path);
Path relativePath = basePath.relativize(absPath);

// relativePath == Paths.get("stuff/xyz.dat")
登录后复制
中提供的 relativize 方法

以上是如何在 Java 中从两个绝对路径构造相对路径?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板