English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Beispiel lernen wir, wie man mit String-Methode, URI-Klasse und java.nio.file-Paket aus zwei absoluten Pfaden in Java relative Pfade ermittelt.
import java.io.File; import java.net.URI; class Main {}} public static void main(String[] args) { try { //Zwei absolute Pfade File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); System.out.println("Absoluter Pfad1: " + absolutePath1); File absolutePath2 = new File("C:\\Users\\Desktop"); System.out.println("Absoluter Pfad2: " + absolutePath2); //Absolute Pfade in URI umwandeln URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); //Relative Pfade aus zwei Pfaden erstellen URI relativePath = path2.relativize(path)1); //URI in eine Zeichenkette umwandeln String path = relativePath.getPath(); System.out.println("Relativer Pfad: " + path); } catch (Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Absoluter Pfad1: C:\Users\Desktop\w3codebox\Java\Time.java Absoluter Pfad2: C:\Users\Desktop Relativer Pfad: w3codebox/Java/Time.java
Im obigen Beispiel haben wir zwei Dateien namens absolutePath1 und absolutePath2 Absoluten Pfad. Wir haben die URI-Klasse verwendet, um den absoluten Pfad in einen relativen Pfad umzuwandeln.
.toURI() - konvertieren Sie File-Objekte inUri
.relativize() - Durch das Vergleichen der beiden absoluten Pfade wird der relative Pfad extrahiert
.getPath() - URI in eine Zeichenkette umwandeln
import java.io.File; class Main {}} public static void main(String[] args) { //Dateiobjekt erstellen File file1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); File file2 = new File("C:\\Users\\Desktop"); // konvertieren Sie Dateiobjekte in Zeichenketten String absolutePath1 = file1.toString(); System.out.println("Absoluter Pfad1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("Absoluter Pfad2: " + absolutePath2); //erhalten relative Pfade String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("Absoluter Pfad: " + relativePath); } }
Ausgaberesultat
Absoluter Pfad1: C:\Users\Desktop\w3codebox\Java\Time.java Absoluter Pfad2: C:\Users\Desktop Absoluter Pfad: \w3codebox\Java\Time.java
Im obigen Beispiel konvertieren wir den Dateipfad in eine Zeichenkette. Beachten Sie den Ausdruck
absolutePath1.substring(absolutePath2).length())
hier gibt die Methode substring ()1einem Teil, von der Indizierung gleich2von der Länge beginnen. Das bedeutet, von1entfernen2 dargestellte Zeichenkette.
Für mehr Informationen darüber, wie Substrings funktionieren, besuchen SieJava String substring().
import java.nio.file.Path; import java.nio.file.Paths; class Main {}} public static void main(String[] args) { //Dateiobjekt erstellen Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); Path absolutePath2 = Paths.get("C:\\Users\\Desktop"); //Absolute Pfade in relative Pfade umwandeln Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Relativer Pfad: " + relativePath); } }
Ausgaberesultat
Relativer Pfad: w3codebox\Java\Time.java
In den obigen Beispielen haben wir die Methode relativize() der Path-Schnittstelle verwendet, um Relative-Pfade aus zwei absoluten Pfaden zu erhalten.