IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Gestion des erreurs + copie complète des fichiers d'un dossier


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 45
    Points : 16
    Points
    16
    Par défaut Gestion des erreurs + copie complète des fichiers d'un dossier
    Bonjour a tous et a toutes,

    J'aurai aimé savoir comment je peux vérifier les erreurs c'est à dire si la personne remplie tout les champs et insère tout les bon fichiers avant d'exécuter. Sinon on retourne sur le formulaire de saisie nommé : FenetreSauvegarde.java (qui n'est pas un Jframe il y a une méthode fenetre() qui es initialisé)

    J'aurai aimé savoir comment je peut copier la totalité des fichiers qui se trouvent à l'intérrieur du dossier annexe.
    mon code actuel ne fonctionne pas :'(

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try {
                    newAnnexeFile.copyDirectory(source, dest);
                } catch (IOException e) {
                    e.printStackTrace();
                }
    Voici mon code complet pour un bouton nommé validé :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    package nf;
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.StandardCopyOption;
    
    import ui.BoiteDialogUI;
    import ui.FenetreUI;
    
    
    public class SauvegardeFichiers {
    
        private File directory;
    
        private String code;
    
        private String annee;
    
        private String increment;
        
        private FenetreUI fenetre;
        
    
        public SauvegardeFichiers(File directory, String code, String annee, String increment) {
            this.directory = directory;
            this.code = code;
            this.annee = annee;
            this.increment = increment;
        }
    
        public void sauvegarde(File qc14File, File rapportFile, File annexeFile) {
            try {
                
                
                
                if(code.isEmpty()){
                        String message ="Vous devez insérer le code projet.";
                        BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);}
        
                
                
                if (annee.isEmpty()){
                    String message ="Vous devez insérer l'année.";
                    BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);
                    
                    
                }
                if (increment.isEmpty()){
                    String message ="Vous devez insérer l'increment.";
                    BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);
                    
                
                }
                
                if(qc14File.exists()){
                    String message ="Vous devez insérer une demande.";
                    BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);    
                    
                }
                
                if(!rapportFile.exists()){
                    String message ="Vous devez insérer un rapport.";
                    BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);    
                    
                }
                
                if(!annexeFile.exists()){
                    String message ="Vous devez insérer un annexe.";
                    BoiteDialogUI.afficherErreur(fenetre, "Erreur", message);    
                    
                }
    
                String rapportFileEx = "";
                String baseDir = directory.toPath().toString() + File.separator + code + "_" + annee + "_" + increment;
                int idxRapportFileEx = rapportFile.getName().indexOf('.');
                if(idxRapportFileEx != -1) {
                    rapportFileEx = "." + rapportFile.getName().substring(idxRapportFileEx+1);
                }
                String newRapportPath = baseDir + File.separator + code + "_" + annee + "_" + increment + rapportFileEx;
                File newRapportFile = new File(newRapportPath);
                newRapportFile.mkdirs();
                Files.copy(rapportFile.toPath(), newRapportFile.toPath(), StandardCopyOption.REPLACE_EXISTING).toFile();
    
                String qc14FileExtension = "";
                int idxQc14Ext = qc14File.getName().indexOf('.');
                if(idxQc14Ext != -1) {
                    qc14FileExtension = "." + qc14File.getName().substring(idxQc14Ext+1);
                }
                String newQc14Path = baseDir + File.separator + "QC14_" + code + "_" + annee + "_" + increment + qc14FileExtension;
                File newQc14File = new File(newQc14Path);
                newQc14File.mkdirs();
                Files.copy(qc14File.toPath(), newQc14File.toPath(), StandardCopyOption.REPLACE_EXISTING).toFile();
    
                String newAnnexePath = baseDir + File.separator + "Annexes";
                File newAnnexeFile = new File(newAnnexePath);
                newAnnexeFile.mkdirs();
                Files.copy(annexeFile.toPath(), newAnnexeFile.toPath(), StandardCopyOption.REPLACE_EXISTING).toFile();
                
                File source = new File(annexeFile.getAbsolutePath());
                File dest = new File(newAnnexePath);
                
                try {
                    newAnnexeFile.copyDirectory(source, dest);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
                String message ="Sauvegarde effectue.";
                BoiteDialogUI.afficherInformation(fenetre, "Sauvegarde", message);
                }
                
                /**for (int i=0; i<annexeFile.length(); i++) {
                    Path dest = newAnnexeFile.resolve(newAnnexeFile.length([i]).getFileName());
                
                
                
                //this.code.replace(this.code,"");
                //this.annee.replace(this.annee,"");
                //this.increment.replace(this.increment,"");
                
            }**/ 
            
            catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    }

    Merci de votre attention et de votre compréhension

    Bien cordialement

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    Il existe une librairie très pratique qui permet de lister tous les fichiers contenus dans un dossier, y compris les fichiers contenus dans les sous-dossiers!
    Il s'agit de Apache Commons IO.
    Ensuite c'est très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(File f : FileUtils.listFilesAndDirs(dir , TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)) {
         //...
    }
    Sinon sans librairie supplémentaire tu peux faire comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	ArrayList<File> files = new ArrayList<File>();
    	public void browseDirectory(File dir) {
    		for(File f : dir.listFiles()) {
    			if(f.isDirectory())
    				browseDirectory(f);
    			else
    				files.add(f);
    		}
    	}
    (Non testé)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 45
    Points : 16
    Points
    16
    Par défaut
    Oui mais je le place ou par exemple pour copier les Annexes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String newAnnexePath = baseDir + File.separator + "Annexes";
    				File newAnnexeFile = new File(newAnnexePath);
    				newAnnexeFile.mkdirs();
     
    				Files.copy(annexeFile.toPath(), newAnnexeFile.toPath(), StandardCopyOption.REPLACE_EXISTING).toFile();
    Désolé je vois vraiment pas comment l'utiliser car quand je le fais je pense ne pas le faire au bon entrdoit et j'ai pleins de Warnings :'(

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Avec le code que j'ai donné, tu peux récupérer tous les fichiers contenus dans un dossier, y compris ceux contenus dans ses sous-dossiers. Tu n'as plus qu'a copier un par un ces derniers à l'emplacement voulu.

    Je ne comprend pas trop ce que tu souhaite faire. Peux-tu reformuler?

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Salut hools31,
    je pense qu'on ne te comprend pas tellement, si tu pouvait mieux nous expliquer.
    Sinon la solution semble avoir été donnée par geremGamer.
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

Discussions similaires

  1. [CFT] Etre averti des erreurs de transferts de fichier
    Par thomas_31 dans le forum Développement
    Réponses: 0
    Dernier message: 30/07/2012, 15h47
  2. Gestion des erreurs lecture/ecriture des fichiers
    Par darkwalker dans le forum ANT
    Réponses: 1
    Dernier message: 07/07/2012, 18h56
  3. Script avec gestion d'erreur pour loader des data depuis un csv
    Par olive_le_malin dans le forum Requêtes
    Réponses: 9
    Dernier message: 10/04/2009, 18h04
  4. Réponses: 7
    Dernier message: 21/07/2008, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo