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 :
La classe qui regarde cette copie (FrameAvancementCopie) :
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);
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 :/
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); } } }
La trace de copie (je ne met que la fin) :
Qqun aurait une idée du pourquoi ?
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)
De même si une meilleure idée pour suivre l'avancement de la copie !
Merci
Partager