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
Le chemin relatif souhaité, avec le deuxième chemin comme base, est :
./stuff/xyz.dat
Comment cela peut-il être réalisé efficacement en Java ?
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"
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")
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!