Comparer 2 répertoires

Résolu
DeadPool33 Messages postés 14 Date d'inscription lundi 20 octobre 2014 Statut Membre Dernière intervention 29 juin 2016 - Modifié par DeadPool33 le 20/10/2014 à 17:22
DeadPool33 Messages postés 14 Date d'inscription lundi 20 octobre 2014 Statut Membre Dernière intervention 29 juin 2016 - 20 oct. 2014 à 20:50
Bonjour,
Bonjour,
je veux comparer deux répertoires et copier les fichiers du premier dans le deuxième.

j'ai chercher comment faire mais sans succès. Voici un exemple de l'abre des fichiers à comparer

F1
sub1
file1
sub2
file2

je voudrais les copiers dans un autre répertoire s'il ne sont pas déjà inclus dans celui-ci

merci.

4 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
20 oct. 2014 à 17:44
Hello,

j'ai chercher comment faire mais sans succès.

Montres-nous ce que tu as fait et nous essayerons de t'aider...
0
DeadPool33 Messages postés 14 Date d'inscription lundi 20 octobre 2014 Statut Membre Dernière intervention 29 juin 2016
Modifié par BunoCS le 20/10/2014 à 20:32
bonjour j'ai une fonction qui fonctionne mais beaucoup trop dégeux pour montrer mais voici une partie de la fonction récursive que je travail présentement... Ce n'est qu'un début je ne suis pas sur de ce que je fai fait mais bon...
File dir1 = new File(""C:\\Temp\dir1");
File dir2 = new File(""C:\\Temp\dir2");
public void do(File file){
        File[] files= file.listFiles();
        for(File file : files){
            if(file.isDirectory()){
               do(file)
            }
            else{
             //compare
             }
        }
    }
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
20 oct. 2014 à 18:33
Il te faut 2 fonctions:
- une pour parcourir un dossier, dir1 par exemple (ce que tu as commencé à faire)
- une pour vérifier qu'un fichier est présent ou non dans un répertoire

La 2e, il faudra l'appeler dans ton code "compare" et suivant le résultat, tu devra copier ou non le fichier
0
DeadPool33 Messages postés 14 Date d'inscription lundi 20 octobre 2014 Statut Membre Dernière intervention 29 juin 2016
Modifié par BunoCS le 20/10/2014 à 20:32
Ce que je voulais faire était de copier des images réduites dans un autre répertoire..

j'ai finallement réussit avec une fonction récursive et voici mon code pour les intéressé:
public static void reduirePhoto(File repCourant, File repDestination){
        File[] photos = repCourant.listFiles();
        for(File fichier : photos){
            if(fichier.isDirectory()){
                File[] dir = repDestination.listFiles();
                for(File f : dir){
                    if(f.getName().equals(fichier.getName())){
                        reduirePhoto(fichier,f);
                    }
                }
            }
            else{
                try{
                    String dir = repDestination.getAbsolutePath() + "\\" + fichier.getName();

                    BufferedImage originalImage = ImageIO.read(fichier);
                    BufferedImage scaledImg = Scalr.resize(originalImage, Scalr.Method.QUALITY, 600, 400);
                    ImageIO.write(scaledImg, "jpg", new File(dir));
                }
                catch(Exception e){
                    e.getMessage();
                }
            }
        }
    }
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
20 oct. 2014 à 20:31
Ce n'est pas vraiment ce qui était demandé au départ, mais si le problème est résolu, c'est nickel!
0
DeadPool33 Messages postés 14 Date d'inscription lundi 20 octobre 2014 Statut Membre Dernière intervention 29 juin 2016
Modifié par DeadPool33 le 20/10/2014 à 20:51
En fait oui car j'utilise ce que j'avais demander pour permettre de modifier les photos ;)
0
Rejoignez-nous