Comparer 2 répertoires [Résolu]

Signaler
Messages postés
14
Date d'inscription
lundi 20 octobre 2014
Statut
Membre
Dernière intervention
29 juin 2016
-
Messages postés
14
Date d'inscription
lundi 20 octobre 2014
Statut
Membre
Dernière intervention
29 juin 2016
-
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.
A voir également:

4 réponses

Messages postés
15056
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 juin 2021
94
Hello,

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

Montres-nous ce que tu as fait et nous essayerons de t'aider...
Messages postés
14
Date d'inscription
lundi 20 octobre 2014
Statut
Membre
Dernière intervention
29 juin 2016

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
             }
        }
    }
Messages postés
15056
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 juin 2021
94
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
Messages postés
14
Date d'inscription
lundi 20 octobre 2014
Statut
Membre
Dernière intervention
29 juin 2016

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();
                }
            }
        }
    }
Messages postés
15056
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 juin 2021
94
Ce n'est pas vraiment ce qui était demandé au départ, mais si le problème est résolu, c'est nickel!
Messages postés
14
Date d'inscription
lundi 20 octobre 2014
Statut
Membre
Dernière intervention
29 juin 2016

En fait oui car j'utilise ce que j'avais demander pour permettre de modifier les photos ;)