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() et Paths.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

InformationsquelleAutor Jorn | 2013-07-09