1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
public static boolean copier(File source, File destination, Fenetre fenetre){
boolean resultat = false;
// Declaration des flux
java.io.FileInputStream sourceFile=null;
java.io.FileOutputStream destinationFile=null;
fenetre.progress.setMinimum(0);
fenetre.progress.setMaximum(99);
fenetre.progress.setValue(0);
try {
// Création du fichier :
destination.createNewFile();
// Ouverture des flux
sourceFile = new java.io.FileInputStream(source);
destinationFile = new java.io.FileOutputStream(destination);
// Lecture par segment de 0.5Mo
byte buffer[]=new byte[512*1024];
int nbLecture;
long taille = source.length();
float pourc = (float)((512*1024*1024*100)/taille),pourcNow = 0;
int p;
while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
destinationFile.write(buffer, 0, nbLecture);
pourcNow += pourc;
p = (int)pourcNow;
fenetre.progress.setValue(p);
}
fenetre.progress.setValue(100);
// Copie réussie
resultat = true;
} catch( java.io.FileNotFoundException f ) {
} catch( java.io.IOException e ) {
} finally {
// Quoi qu'il arrive, on ferme les flux
try {
sourceFile.close();
} catch(Exception e) { }
try {
destinationFile.close();
} catch(Exception e) { }
}
return( resultat );
} |
Partager