Σε αυτό το παράδειγμα, θα μάθουμε να λαμβάνουμε τη σχετική διαδρομή από δύο απόλυτες διαδρομές στην Java χρησιμοποιώντας μεθόδους String, URI class και πακέτο java.nio.file.
Παράδειγμα 1: Λάβετε μια σχετική διαδρομή από δύο απόλυτες διαδρομές χρησιμοποιώντας την κλάση URI
import java.io.File; import java.net.URI; class Main ( public static void main(String() args) ( try ( // Two absolute paths File absolutePath1 = new File("C:\Users\Desktop\Programiz\Java\Time.java"); System.out.println("Absolute Path1: " + absolutePath1); File absolutePath2 = new File("C:\Users\Desktop"); System.out.println("Absolute Path2: " + absolutePath2); // convert the absolute path to URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); // create a relative path from the two paths URI relativePath = path2.relativize(path1); // convert the URI to string String path = relativePath.getPath(); System.out.println("Relative Path: " + path); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Παραγωγή
Απόλυτη διαδρομή1: C: Users Desktop Programiz Java Time.java Absolute Path2: C: Users Desktop Relative Path: Programiz / Java / Time.java
Στο παραπάνω παράδειγμα, έχουμε δύο απόλυτες διαδρομές που ονομάζονται absolutePath1 και absolutePath2. Χρησιμοποιήσαμε την κλάση URI για να μετατρέψουμε τις απόλυτες διαδρομές στη σχετική διαδρομή.
- toURI () - μετατρέπει το
File
αντικείμενο σε Uri - relativize () - εξάγει τη σχετική διαδρομή συγκρίνοντας δύο απόλυτες διαδρομές μεταξύ τους
- getPath () - μετατρέπει το Uri σε συμβολοσειρά
Συνιστώμενη ανάγνωση :
- Αρχείο Java
- Τάξη Java URI
Παράδειγμα 2: Λάβετε μια σχετική διαδρομή από δύο απόλυτες διαδρομές χρησιμοποιώντας μεθόδους String
import java.io.File; class Main ( public static void main(String() args) ( // Create file objects File file1 = new File("C:\Users\Desktop\Programiz\Java\Time.java"); File file2 = new File("C:\Users\Desktop"); // convert file objects to string String absolutePath1 = file1.toString(); System.out.println("Absolute Path1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("Absolute Path2: " + absolutePath2); // get the relative path String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("Absolute Path: " + relativePath); ) )
Παραγωγή
Απόλυτη διαδρομή1: C: Users Desktop Programiz Java Time.java Absolute Path2: C: Users Desktop Absolute Path: Programiz Java Time.java
Στο παραπάνω παράδειγμα, έχουμε μετατρέψει τις διαδρομές αρχείων σε συμβολοσειρές. Παρατηρήστε την έκφραση,
absolutePath1.substring(absolutePath2.length())
Εδώ, η substring()
μέθοδος επιστρέφει το μέρος του absolutePath1 ξεκινώντας από το ευρετήριο ίσο με το μήκος του absolutePath2 Δηλαδή, η συμβολοσειρά που αντιπροσωπεύεται από το absolPath2 αφαιρείται από το absolutePath1.
Για να μάθετε περισσότερα σχετικά με το πώς λειτουργεί το substring, επισκεφθείτε το Java String substring ().
Παράδειγμα 3: Λάβετε μια σχετική διαδρομή από δύο απόλυτες διαδρομές χρησιμοποιώντας το πακέτο java.nio.file
import java.nio.file.Path; import java.nio.file.Paths; class Main ( public static void main(String() args) ( // Create file objects Path absolutePath1 = Paths.get("C:\Users\Desktop\Programiz\Java\Time.java"); Path absolutePath2 = Paths.get("C:\Users\Desktop"); // convert the absolute path to relative path Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Relative Path: " + relativePath); ) )
Παραγωγή
Relative Path: ProgramizJavaTime.java
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη relativize()
μέθοδο της Path
διεπαφής για να πάρουμε μια σχετική διαδρομή από δύο απόλυτες διαδρομές.
Προτεινόμενες αναγνώσεις :
- Τάξη Java Paths
- Διεπαφή διαδρομής Java