Java: Obtenir de l'URI de la FilePath
J'ai peu de connaissance de Java. J'ai besoin de construire une représentation de chaîne d'une URI de FilePath(String)
sur windows. Parfois, le inputFilePath
que je reçois est: file:/C:/a.txt
et parfois, c'est: C:/a.txt
. Maintenant, ce que je fais est:
new File(inputFilePath).toURI().toURL().toExternalForm()
Ci-dessus fonctionne très bien pour les chemins, qui ne sont pas préfixés avec file:/
, mais pour les chemins avec le préfixe file:/
, l' .toURI
la méthode est de le convertir à une URI non valide, en ajoutant de la valeur de répertoire courant, et, de là, le chemin devient invalide.
Merci de m'aider par ce qui suggère une bonne façon d'obtenir de l'URI pour les deux types de chemins.
Suffirait-il suffit d'enlever
file:/
depuis le début de la chaîne si présent? Ou pourrait-il y avoir d'autres préfixes?OriginalL'auteur HarshG | 2011-11-30
Vous devez vous connecter pour publier un commentaire.
Ces valides sont les uri du fichier:
De sorte que vous aurez besoin d'enlever
file:/
oufile:///
pour Windows etfile://
pour Linux.OriginalL'auteur
De SAXLocalNameCount.java de https://jaxp.java.net:
depuis JavaSE7 n'a qu'une seule ligne ...
java.nio.file.FileSystems.getDefault().getPath( xmlFileAsString ).toAbsolutePath().toUri()
Renvoie par exemple."file:///C:/develop/doku/projects/Documentry/THB/src/docbkx/Systemvoraussetzungen.xml"
est la bonne méthode à utiliser pour cela. Il fait la même chose en interne.
OriginalL'auteur
Suffit d'utiliser
Normalize();
Exemple:
cette ligne sera normaliser tous tes chemins.
OriginalL'auteur
L'argument de
new File(String)
est un chemin, pas une URI. La partie de votre post après le "mais" est donc une défaillance de l'utilisation de l'API.URI(uri).getPath(), mais c'est une nouvelle question, n'est-ce pas? Votre question ci-dessus est sur la façon de "construire une représentation de chaîne d'une URI".
Désolé pour la confusion...
OriginalL'auteur
Donne de sortie:
StringUtils.removeStart(...)
:brokenPath = StringUtils.removeStart(brokenPath, "file:/")
.OriginalL'auteur