Comment vérifier si un (String) emplacement est valide économie chemin en Java?
Je suis la réception d'une chaîne de caractères à partir de l'utilisateur qui devrait être utilisé comme un emplacement pour enregistrer le contenu dans un fichier. Cette chaîne doit contenir suffisamment d'informations, comme un répertoire + nom de fichier.
Ma question est, comment puis-je vérifier si la condition de chaîne est un chemin d'accès valide pour enregistrer le contenu dans un fichier (au moins en théorie)?
Il n'est pas question de savoir si les répertoires sont créés ou pas, ou si l'on a un accès approprié à l'emplacement lui-même. Je suis seulement intéressé par la vérification de la structure de la chaîne.
Comment dois-je procéder? Je pensais à la création d'un File
objet, puis l'extraire de son URI
. Est-il un meilleur moyen?
OriginalL'auteur Jérôme Verstrynge | 2011-06-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le Fichier.getCanonicalPath() pour valider selon le système d'exploitation actuel règles.
OriginalL'auteur RealHowTo
Avez-vous regardé Apache Commons IO? Cette bibliothèque contient diverses choses pour la manipulation des informations de chemin d'accès qui peut aider par exemple
FilenameUtils.getPath(String filename)
qui retourne le chemin d'accès à partir d'un nom de fichier.OriginalL'auteur fipple
Plus simple: essayez d'enregistrer, d'écouter des exceptions.
La seule fois que je ferais quelque chose de plus compliqué si l'écriture a été reportées, et que vous voulez donner à l'utilisateur ses commentaires maintenant.
OriginalL'auteur Amadan
Voici ce que j'ai à ce jour:
Cela me dit que j'ai une structure de répertoire approprié et si je suis pointant vers un répertoire plutôt que d'un fichier. Je n'ai pas besoin accès I/O.
J'ai remarqué que si j'utilise le
File.createNewFile()
méthode sur un emplacement de pointage explicitement à un répertoire (qui n'existe pas encore), Java crée un fichier sans extension, qui est simplement faux. Soit il doit créer un répertoire ou il faut jeter un certain genre d'erreur.Aussi, le Fichier constructeurs ont tendance à ajouter le répertoire courant si aucun n'est fourni en argument. Il n'est pas documenté, mais pas de réel danger dans mon cas.
Si quelqu'un a une meilleure solution, je vais l'approuver.
MODIFIER
J'ai enfin combinée avec l'entrée de RealHowTo.
File.createNewFile()
crée un nouveau fichier sans extension, car il n'y a pas de distinction d'un chemin d'accès à un fichier de l'un à un répertoire (au moins sur UNIX et Windows <windows 95 / NT <3.51); La méthode pour créer un répertoireFile.mkdir()
.OriginalL'auteur Jérôme Verstrynge