Comment obtenir un chemin de fichier absolu propre dans Java quel que soit le système d'exploitation?
Voici le problème. Après quelques enchaînements je peux arriver à avoir une chaîne comme celle-ci
"C:/shared_resources/samples\\import_packages\\catalog.zip"
ou même ce
"C:/shared_resources/samples/subfolder/..\\import_packages\\catalog.zip"
Je veux avoir un code qui va transformer la chaîne dans un chemin avec des séparateurs.
La première solution qui vient à l'esprit est à l'aide de new File(srcPath).getCanonicalPath()
cependant, ici, la partie la plus délicate. Cette méthode repose sur le système, où les tests sont invoqués. Cependant j'ai besoin de passer la chaîne à une machine distante (Sélénium noeud de la Grille avec un navigateur), et les systèmes d'ici et il y a Linux et Windows, respectivement. Donc essayer de faire new File("C:/shared_resources/samples\\import_packages\\catalog.zip").getCanonicalPath()
résultats dans quelque chose comme "/home/username/ourproject/C:/shared_resources/samples/import_packages/catalog.zip"
. Et à l'aide de blunt regex de remplacement ne semble pas une très bonne solution aussi.
Est-il un moyen juste pour tailler le chemin et de faire des délimiteurs uniforme (et éventuellement la résolution de ..
's) sans essayer de implicitement absolutiser?
source d'informationauteur Actine
Vous devez vous connecter pour publier un commentaire.
Essayer avec ceci:
Essayer
FilenameUtils.normalize()
de Apache commons-iopar exemple ici est votre chemin: