[JProgressBar] Suivre l'avancement d'une copie
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:
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:
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:
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 :)