Bonjour,
Je travail sur une fenêtre de type "save as" permettant de sauvegarder un fichier. A condition que se dernier soit sauvegardé avec un nom au bon format et que le nom n'appartienne pas déjà à un fichier existant.
Voici mon bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 boolean close_popup = false; File userFile = null; File newFile = null; while(newFile == null && !close_popup) { //ouverture d'une fenêtre save as userFile = dbFileChooser.getSelection(); //build le fichier et vérifie le bon format, si mauvais format => popup alerte newFile = buildNewFile(userFile, true); if(userFile == null) { close_popup = true; } } if(newFile != null) { //si le nom du fichier sauvegarder porte le nom d'un fichier déjà existant while(newFile.exists()) { warning(getActionLabel(saveAsLabel), getTranslation("FileAlreadyExists")); userFile = dbFileChooser.getSelection(); newFile = buildNewFile(userFile, true); if(userFile == null) { close_popup = true; } } if(newFile.exists() == false) { OdVerDbFile newDb = OdVerDbFile.build(newFile, false); newDb.saveFrom(m_MainDb); //lance directement le fichier créé OdVerDbAdministrator.get().openMainDB(newFile.getAbsolutePath(), true); OdMenLruManager.get().addRecentFile(newFile); } }
Mon problème se situe au niveau du while(newFile.exists()) ligne 17.
Si jamais je sauvegarde avec un nom de fichier qui existe déjà alors j'ai une popup qui s'affiche et me dit "fichier déjà existant". Et si ensuite je ferme la fenêtre du save as mon programme plante (c'est là qu'est mon problème).
Je pense que c'est peut être du à ma condition de sortie de ma boucle while qui est pas bonne.
Pouvez vous m'aider.
Merci d'avance
Partager