Πρόγραμμα Java για λήψη της σχετικής διαδρομής από δύο απόλυτες διαδρομές

Σε αυτό το παράδειγμα, θα μάθουμε να λαμβάνουμε τη σχετική διαδρομή από δύο απόλυτες διαδρομές στην 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

ενδιαφέροντα άρθρα...