Mencipta Laluan Relatif daripada Dua Laluan Mutlak
Diberikan dua laluan mutlak, seperti:
/var/data/stuff/xyz.dat /var/data
bagaimana boleh kita menjana laluan relatif yang bermula dari laluan kedua? Sebagai contoh, output yang dikehendaki untuk laluan di atas ialah:
./stuff/xyz.dat
Penyelesaian menggunakan URI
Satu pendekatan memanfaatkan kelas URI, yang menyediakan kaedah relativize untuk mengendalikan penukaran tersebut:
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"
Nota: Untuk fail laluan secara khusus, Java 1.7 dan kemudiannya menawarkan kaedah relativize pada antara muka java.nio.file.Path, seperti yang dicadangkan oleh @Jirka Meluzin.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Laluan Relatif daripada Dua Laluan Mutlak di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!