2009-10-02 7 views
5

Je crée des noms de fichiers basés sur des valeurs dynamiques telles que le nom de l'entreprise et le prénom/nom.Création de noms de fichiers valides en Java

Je voudrais ensuite vérifier que le nom de fichier est valide avant d'essayer de créer le fichier. C'est à vérifier qu'il ne contient aucun caractère illégal, et remplacez-les s'ils le font.

Je pourrais bien sûr utiliser une expression régulière, mais je me demandais s'il y avait une méthode existante dans quelque chose comme commons-lang ou commons-io qui fait cela?

Répondre

5

Avec Java 7, la nouvelle méthode java.nio.file.Paths.get(String path) lancera un InvalidPathException si le chemin contient des caractères non autorisés pour le système de fichiers spécifique, mais en Java 6 ou antérieur, il y a Malheureusement, aucune fonction de ce genre. Étant donné que les caractères autorisés et la longueur d'un nom de fichier dépendent fortement de la plate-forme (ou même du système de fichiers), vous n'avez pas d'autre choix que d'essayer de créer le fichier et de voir s'il échoue. Dans Java 6, la création d'un FileOutputStream avec un chemin illégal entraînera une FileNotFoundException plutôt non spécifique.

3

Eh bien, vous devriez le supprimer même si est un nom de fichier légal, car il peut contenir un chemin, auquel cas un utilisateur peut fournir ../../../../. ./../../etc/passwd etc.

Questions connexes