考慮從兩個絕對路徑建立相對路徑的挑戰。例如,給定這些絕對路徑:
/var/data/stuff/xyz.dat /var/data
所需的相對路徑(以第二條路徑為基礎)是:
./stuff/xyz.dat
如何在Java 中有效實現這一點?
要解決這個問題,請考慮使用 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.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")
以上是如何在 Java 中從兩個絕對路徑建構相對路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!