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

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

DDD
Freigeben: 2024-12-07 07:20:15
Original
593 Leute haben es durchsucht

How Can I Construct a Relative Path from Two Absolute Paths in Java?

Relative Pfadkonstruktion aus absoluten Pfaden in Java

Betrachten Sie die Herausforderung, einen relativen Pfad aus zwei absoluten Pfaden zu konstruieren. Wenn beispielsweise diese absoluten Pfade gegeben sind:

/var/data/stuff/xyz.dat
/var/data
Nach dem Login kopieren

Der gewünschte relative Pfad, mit dem zweiten Pfad als Basis, ist:

./stuff/xyz.dat
Nach dem Login kopieren

Wie kann dies in Java effektiv erreicht werden?

Lösung mit URI

Um dieses Problem zu lösen, sollten Sie die Verwendung der URI-Klasse von Java in Betracht ziehen. URI bietet eine Methode, Relativize, die den Prozess der Erstellung eines relativen Pfads basierend auf den bereitgestellten absoluten Pfaden automatisiert.

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"
Nach dem Login kopieren

Lösung mit Java 1.7 Path

Wenn Ihre Java-Version 1.7 oder ist Später können Sie auch die Relativisierungsmethode nutzen, die in java.nio.file.Path.

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

Path basePath = Paths.get(base);
Path absPath = Paths.get(path);
Path relativePath = basePath.relativize(absPath);

// relativePath == Paths.get("stuff/xyz.dat")
Nach dem Login kopieren
verfügbar ist

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage