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