首頁 > Java > java教程 > 如何在 Java 中從兩個絕對路徑建構相對路徑?

如何在 Java 中從兩個絕對路徑建構相對路徑?

DDD
發布: 2024-12-07 07:20:15
原創
592 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板