Comment obtenir le chemin de chaîne à partir de java.nio.Chemin d'accès?
Réécriture de la question avec plus d'info
J'ai un code qui crée un Path
objet à l'aide de chemins relatifs, comme ceci: Paths.get("..", "folder").resolve("filename")
. Plus tard, je veux obtenir la chaîne de chemin "..\dossier\nom de fichier" de celle-ci (je suis sur windows, donc anti-slash). Lorsque j'exécute ce code à l'aide manuelle de la compilation ou de l'Éclipse, cela fonctionne bien.
Cependant, lorsque je l'exécute à l'aide de Maven, il ne marche plus. Le toString()
méthode renvoie [.., folder, filename]
au lieu d'un chemin d'accès réel de la chaîne. À l'aide de path.normalize()
ne l'aide pas. À l'aide de path.toFile().getPath()
ne revenir à ce que je cherche, mais je pense qu'il devrait y avoir une solution en utilisant simplement la nio.path
API.
- Cela ne semble pas juste. Les deux
Paths.get("path/to/file").toString()
etPaths.get("path", "to", "file").toString()
fois de retour"path/to/file"
pour moi. - En est de même de
Paths.get("path/to").resolve("file").toString()
, qui renvoie"path/to/file"
. - Je me trompe peut-être mais pour moi les deux renvoie la même chaîne !!!
- Quelle suite envisagez-vous pour
Paths.get("path", "to", "file").getClass().getName()
? Peut-être que vous allez chercher un vilain système de fichiers de la mise en œuvre. - La différence peut-être que je vais commencer à monter d'un chemin d'accès (par rapport au répertoire de travail):
Paths.get("..", "path/to", "file")
. Je ne pensais pas qu'il serait pertinent de la question, mais apparemment il est. - Encore une fois, ce n'est pas le résultat de quelque chose de surprenant:
Paths.get("..", "path/to", "file").toString()
retourne"../path/to/file"
. Je suis à l'aide du JDK 1.7.0_21
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Une autre solution woul être:
Cependant, vous obtenez des résultats étranges:
Paths.get("/tmp", "foo").toString()
retourne/tmp/foo
ici. Qu'est-ce que votre système de fichiers?java.nio.file.Paths
, pour être exact.