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

如何在Java中從兩個絕對路徑產生相對路徑?

DDD
DDD原創
2024-12-07 00:40:15285瀏覽

How to Generate a Relative Path from Two Absolute Paths in Java?

從兩個絕對路徑建立相對路徑

給定兩個絕對路徑,例如:

/var/data/stuff/xyz.dat
/var/data

如何我們產生一個從第二條路徑開始的相對路徑?例如,上述路徑的所需輸出為:

./stuff/xyz.dat

使用URI 的解

一種方法利用URI 類,它提供了一個relativize 方法來處理這樣的轉換:

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

// Convert the paths to URIs
URI pathURI = new File(path).toURI();
URI baseURI = new File(base).toURI();

// Obtain the relative URI
URI relativeURI = pathURI.relativize(baseURI);

// Extract the relative path
String relativePath = relativeURI.getPath();
// relativePath == "stuff/xyz.dat"

注意:對於檔案路徑具體來說,Java 1.7 及更高版本在 java.nio.file.Path 介面上提供了 relativize 方法,如@Jirka Meluzin 所建議。

以上是如何在Java中從兩個絕對路徑產生相對路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn