Heim >Java >javaLernprogramm >Wie erstelle ich in Java einen relativen Pfad aus zwei absoluten Pfaden?

Wie erstelle ich in Java einen relativen Pfad aus zwei absoluten Pfaden?

DDD
DDDOriginal
2024-12-07 00:40:15314Durchsuche

How to Generate a Relative Path from Two Absolute Paths in Java?

Relative Pfade aus zwei absoluten Pfaden erstellen

Gegeben sind zwei absolute Pfade, wie zum Beispiel:

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

wie kann Wir generieren einen relativen Pfad, der vom zweiten Pfad ausgeht. Die gewünschte Ausgabe für die oben genannten Pfade lautet beispielsweise:

./stuff/xyz.dat

Lösung mit URI

Ein Ansatz nutzt die URI-Klasse, die eine Relativierungsmethode zur Handhabung bereitstellt solche Konvertierungen:

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";

// Convert the paths to URIs
URI pathURI = new File(path).toURI();
URI baseURI = new File(base).toURI();

// Obtain the relative URI
URI relativeURI = pathURI.relativize(baseURI);

// Extract the relative path
String relativePath = relativeURI.getPath();
// relativePath == "stuff/xyz.dat"

Hinweis: Speziell für Dateipfade gelten Java 1.7 und bietet später die Relativize-Methode auf der java.nio.file.Path-Schnittstelle an, wie von @Jirka Meluzin vorgeschlagen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich in Java einen relativen Pfad aus zwei absoluten Pfaden?. 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