Java-Programm zum Abrufen des relativen Pfads von zwei absoluten Pfaden

In diesem Beispiel lernen wir, den relativen Pfad aus zwei absoluten Pfaden in Java mithilfe der String-Methoden, der URI-Klasse und des Pakets java.nio.file abzurufen.

Beispiel 1: Abrufen eines relativen Pfads von zwei absoluten Pfaden mithilfe der URI-Klasse

 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(); ) ) )

Ausgabe

 Absoluter Pfad1: C: Benutzer Desktop Programiz Java Time.java Absoluter Pfad2: C: Benutzer Desktop Relativer Pfad: Programiz / Java / Time.java

Im obigen Beispiel haben wir zwei absolute Pfade mit den Namen absolutePath1 und absolutePath2. Wir haben die URI-Klasse verwendet, um die absoluten Pfade in den relativen Pfad zu konvertieren.

  • toURI () - konvertiert das FileObjekt in einen Uri
  • relativize () - extrahiert den relativen Pfad, indem zwei absolute Pfade miteinander verglichen werden
  • getPath () - konvertiert den Uri in einen String

Literaturempfehlung :

  • Java-Datei
  • Java-URI-Klasse

Beispiel 2: Abrufen eines relativen Pfads von zwei absoluten Pfaden mithilfe von String-Methoden

 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); ) )

Ausgabe

 Absoluter Pfad1: C: Benutzer Desktop Programiz Java Time.java Absoluter Pfad2: C: Benutzer Desktop Absoluter Pfad: Programiz Java Time.java

Im obigen Beispiel haben wir die Dateipfade in Zeichenfolgen konvertiert. Beachten Sie den Ausdruck,

 absolutePath1.substring(absolutePath2.length())

Hier gibt die substring()Methode den Teil von absolutePath1 ab dem Index zurück , der der Länge von absolutePath2 entspricht. Das heißt, die durch absolutePath2 dargestellte Zeichenfolge wird aus absolutePath1 entfernt.

Weitere Informationen zur Funktionsweise von Teilzeichenfolgen finden Sie unter Java String substring ().

Beispiel 3: Mit dem Paket java.nio.file einen relativen Pfad aus zwei absoluten Pfaden abrufen

 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); ) )

Ausgabe

 Relative Path: ProgramizJavaTime.java

Im obigen Beispiel haben wir die relativize()Methode der PathSchnittstelle verwendet, um einen relativen Pfad aus zwei absoluten Pfaden zu erhalten.

Empfohlene Lektüre :

  • Java Paths Class
  • Java-Pfadschnittstelle

Interessante Beiträge...