Maison > Java > javaDidacticiel > Comment puis-je construire un chemin relatif à partir de deux chemins absolus en Java ?

Comment puis-je construire un chemin relatif à partir de deux chemins absolus en Java ?

DDD
Libérer: 2024-12-07 07:20:15
original
585 Les gens l'ont consulté

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

Construction de chemin relatif à partir de chemins absolus en Java

Considérez le défi de construire un chemin relatif à partir de deux chemins absolus. Par exemple, étant donné ces chemins absolus :

/var/data/stuff/xyz.dat
/var/data
Copier après la connexion

Le chemin relatif souhaité, avec le deuxième chemin comme base, est :

./stuff/xyz.dat
Copier après la connexion

Comment cela peut-il être réalisé efficacement en Java ?

Solution utilisant l'URI

Pour résoudre ce problème, envisagez d'utiliser la classe URI de Java. L'URI fournit une méthode, relativiser, qui automatise le processus de création d'un chemin relatif basé sur les chemins absolus fournis.

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"
Copier après la connexion

Solution utilisant le chemin Java 1.7

Si votre version de Java est 1.7 ou plus tard, vous pourrez également exploiter la méthode relativize disponible dans 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")
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal