Hey,
j'ai une classe qui doit copier des gros répertoires. Je dev une autre classe afin de suivre cette copie justement, pour que l'user soit au courant de ce qu'il se passe.

La classe qui copie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Thread toto = new Thread(new FrameAvancementCopie(repSrc,repDest));
toto.start();
FileUtils.copyDirectory(repSrc, repDest);
La classe qui regarde cette copie (FrameAvancementCopie) :
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
 
    public void run() {
        while(isActif()) {
            // taille du rep source
            long tailleRepSrc = FileUtils.sizeOfDirectory(repSrc);
            // taille du rep dest
            long tailleRepDest = FileUtils.sizeOfDirectory(repDest);
            // pourcentage de copie
            float percent = tailleRepDest / tailleRepSrc * 100;
            // on affiche les infos
            System.out.println("Toto : "+percent);
            System.out.println("Src : "+tailleRepSrc);
            System.out.println("Dest : "+tailleRepDest);
            System.out.println("******************************");
            // si la copie est terminé, on arrête
            if(percent == 100.0) {
                setActif(false);
            }
        }
    }
Mon problème est que malgré que tailleRepDest se mette bien à jour, percent ne change pas. Il passe de 0 à 100 d'un coup et je ne comprends pas pourquoi :/

La trace de copie (je ne met que la fin) :
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
 
Toto : 0.0
Src : 40596576
Dest : 40377895
******************************
Toto : 0.0
Src : 40596576
Dest : 40377895
******************************
Toto : 0.0
Src : 40596576
Dest : 40377895
******************************
Toto : 0.0
Src : 40596576
Dest : 40377895
******************************
Toto : 100.0
Src : 40596576
Dest : 40596576
******************************
40596576
BUILD SUCCESSFUL (total time: 8 seconds)
Qqun aurait une idée du pourquoi ?
De même si une meilleure idée pour suivre l'avancement de la copie !

Merci