Heim >Java >javaLernprogramm >Wie kann Java aus zwei absoluten Pfaden einen relativen Pfad generieren?

Wie kann Java aus zwei absoluten Pfaden einen relativen Pfad generieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 05:40:21486Durchsuche

How Can Java Generate a Relative Path from Two Absolute Paths?

Mit Java relative Pfade aus absoluten Pfaden konstruieren

Beim Arbeiten mit Dateipfaden in Java kann es notwendig sein, einen relativen Pfad zu erstellen aus zwei absoluten Pfaden. Ein relativer Pfad definiert einen Ort relativ zu einem Basispfad. Dies kann nützlich sein, um Dateioperationen und das Durchlaufen zu vereinfachen.

Frage:

Gegeben zwei absolute Pfade:

/var/data/stuff/xyz.dat
/var/data

Wie können Sie eine erstellen relativer Pfad, der den zweiten Pfad als Basis verwendet? In diesem Beispiel ist der erwartete relative Pfad ./stuff/xyz.dat.

Antwort:

Eine Methode zum Erstellen eines relativen Pfads in Java besteht darin, die zu nutzen URI-Klasse. Die URI-Klasse stellt eine Relativisierungsmethode bereit, die die erforderlichen Prüfungen und Berechnungen durchführt.

So können Sie mit der URI-Klasse einen relativen Pfad erstellen:

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"

In diesem Beispiel die Relativierung Die Methode verwendet zwei URI-Objekte, die die absoluten Pfade darstellen, und gibt ein neues URI-Objekt zurück, das den relativen Pfad darstellt. Anschließend wird die Methode getPath() verwendet, um den relativen Pfad als Zeichenfolge zu extrahieren.

Zusätzlicher Hinweis:

Speziell für Dateipfade bieten Java-Versionen 1.7 und höher die java.nio.file.Path#relativize-Methode, mit der relative Pfade direkt zwischen Path-Objekten berechnet werden können. Dies bietet möglicherweise einen optimierteren Ansatz für die Arbeit mit Dateipfaden.

Das obige ist der detaillierte Inhalt vonWie kann Java aus zwei absoluten Pfaden einen relativen Pfad generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn