Heim >Java >javaLernprogramm >Wie erstelle ich in Java einen relativen Pfad aus zwei absoluten Pfaden?
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!