[Java IO] Nom de fichier
Résolu
zzzer
Messages postés
938
Statut
Membre
-
zzzer Messages postés 938 Statut Membre -
zzzer Messages postés 938 Statut Membre -
Bonsoir,
Je rencontre actuellement un problème sur lequel j'aurais besoin d'un coup de pouce.
J'ai une fonction qui me permet d'exporter un JPanel sous forme de fichier JPEG. L'utilisateur est donc invité à choisir un dossier et saisir le nom du fichier à l'aide d'un JFileChooser.
Mon problème est que si l'utilisateur saisit un nom avec des caractères non autorisés (exemple, le caractère ':' ou '?'), aucune exception ne sera lancée et un fichier va quand même être créé, mais son nom sera tronqué au niveau du caractère interdit. Exemple: si l'utilisateur tape "toto:tata.jpeg", un fichier vide nommé "toto" sera créé.
Voici mon code:
Comment éviter d'avoir ce problème ?
Merci d'avance!
Je rencontre actuellement un problème sur lequel j'aurais besoin d'un coup de pouce.
J'ai une fonction qui me permet d'exporter un JPanel sous forme de fichier JPEG. L'utilisateur est donc invité à choisir un dossier et saisir le nom du fichier à l'aide d'un JFileChooser.
Mon problème est que si l'utilisateur saisit un nom avec des caractères non autorisés (exemple, le caractère ':' ou '?'), aucune exception ne sera lancée et un fichier va quand même être créé, mais son nom sera tronqué au niveau du caractère interdit. Exemple: si l'utilisateur tape "toto:tata.jpeg", un fichier vide nommé "toto" sera créé.
Voici mon code:
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(newImageFile)); // création du fichier
ImageIO.write(tamponSauvegarde, "JPG", newImageFile); // tamponSauvegarde contient l'image et newImageFile est l'objet File dans lequel je l'exporte
out.close();
System.out.println("ok, created file: " + newImageFile.getName());
}
catch (IOException ee) {
JOptionPane.showMessageDialog(null, "File creation impossible: wrong file name?",
null, JOptionPane.ERROR_MESSAGE);
exportAsImage.doClick(); // réaffiche le JFileChooser
}
Comment éviter d'avoir ce problème ?
Merci d'avance!
A voir également:
- [Java IO] Nom de fichier
- Fichier bin - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Fichier epub - Guide
- Fichier rar - Guide
2 réponses
Salut,
tu peux peut-être utiliser une expression régulière, pour tester que le nom saisi est bien formé...(si erreur lancer une exception...)
@+
tu peux peut-être utiliser une expression régulière, pour tester que le nom saisi est bien formé...(si erreur lancer une exception...)
@+
J'ai en fait développé une petite fonction qui teste chaque caractère de la String pour voir s'il fait partie des caractères interdits.
La voici, pour ceux que ça pourrait intéresser:
La voici, pour ceux que ça pourrait intéresser:
public boolean isThisStringValid(String s)
{
for (int i=0 ; i<s.length() ; i++)
{
if (s.charAt(i) == '/' || s.charAt(i) == '\\' ||
s.charAt(i) == ':' || s.charAt(i) == '*' ||
s.charAt(i) == '?' || s.charAt(i) == '"' ||
s.charAt(i) == '<' || s.charAt(i) == '>' ||
s.charAt(i) == '|')
return false;
}
if (s.startsWith("con."))
return false;
return true;
}