從兩個絕對路徑建立相對路徑
給定兩個絕對路徑,例如:
/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中文網其他相關文章!