Copie de fichiers ou duplication d'un répertoire

Copie de fichiers ou duplication d'un répertoire - Java - Programmation

Marsh Posté le 03-12-2002 à 15:42:53    

Bonjour,
Bon, j'ai tout dit ...
Je voudrais copier le contenu d'un répertoire vers un autre
... et avoir la possibilité de controler mon espace disque ???
QQ'un a-t-il deja fait ca ?
 
La classe File propose une methode renameTo... C'est tout ce que j'ai retrouve ?
Merci


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 03-12-2002 à 15:42:53   

Reply

Marsh Posté le 03-12-2002 à 15:52:08    

J'ai dejà du faire un prog qui copie des dossiers mais d'ici à dire ce que j'en ai fait ... :??:  
Mais sinon c pas encore insurmontable ton truc, tu peux pas le faire avec tes petites mimines ?  :sleep:

Reply

Marsh Posté le 03-12-2002 à 15:55:16    

buzvolio a écrit a écrit :

J'ai dejà du faire un prog qui copie des dossiers mais d'ici à dire ce que j'en ai fait ... :??:  
Mais sinon c pas encore insurmontable ton truc, tu peux pas le faire avec tes petites mimines ?  :sleep:  




On peut tout faire avec des FileInputStream et FileOutStream mais je suis pas sûe que c'est le plus performant...
J'pensais que s'il y avait un RenameTo, il devait y avoir un Copyto on peut tjs rever...
 
Bon, je sens que j'vais enlever les mouffles


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 03-12-2002 à 16:13:19    

La je suis pas assez pointu en Java pour te repondre
 
renameTo
public boolean renameTo(File dest)Renames the file denoted by this abstract pathname.  
Whether or not this method can move a file from one filesystem to another is platform-dependent. The return value should always be checked to make sure that the rename operation was successful.  
 
Parameters:
dest - The new abstract pathname for the named file  
Returns:
true if and only if the renaming succeeded; false otherwise

 
il copie les fichiers ? :??:

Reply

Marsh Posté le 03-12-2002 à 16:19:34    

renommer ca veut dire ce que ca veut dire hein :o
pfff faut quand meme avoir un minimum de bon sens ...
 
Bon pour ton problème tu peux faire le truc suivant:
 
- Initialiser une objet File avec ton réportoire source
- Récuperer les File de ce répertoire via la méthode listFiles() ou un truc du genre (voir api)
- Boucler sur la liste et si c'est un fichier bin le copier avec une méthode à toi (un bufferinputstream, un bufferoutputstream, un write et basta).
 
Si t'es vraiment perdu, remdemande ... Mais bon renommer c'est pas copier hein et ca n'a rien à voir avec la programmation (et si je me souviens bien c'est pas la première fois que tu fais le coup sur ce forum)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 03-12-2002 à 16:27:01    

Citation :

renommer ca veut dire ce que ca veut dire hein :o  
pfff faut quand meme avoir un minimum de bon sens ...  


 
j'ai jamais essayé ".renameTo" donc je préfère pas m'engager.
mais c'est vrai que ca parait logique.  :jap:

Reply

Marsh Posté le 03-12-2002 à 16:28:33    

DarkLord a écrit a écrit :

 (et si je me souviens bien c'est pas la première fois que tu fais le coup sur ce forum)




Tu parles de kel coup ? Arrete d'être aussi maussade ...
programmer une copie de directory, je sais faire... Je voulais surtout savoir si une methode n'existait pas deja ?
J'aime pas refaire ce que les autres ont deja fait :non:
Boude pas Dark


Message édité par persepolis le 03-12-2002 à 17:32:13

---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 03-12-2002 à 17:32:44    

PERSEPOLIS a écrit a écrit :

 
Tu parles de kel coup ? Arrete d'être aussi maussade ...
programmer une copie de directory, je sais faire... Je voulais surtout savoir si une methode n'existait pas deja ?
J'aime pas refaire ce que les autres ont deja fait :non:  




 
bin non ca n'existe pas. File est suffisament flexible pour te permettre de faire ca sans trop te casser la tête ... Et sinon je me souviens d'un de tes topics ou tu te cassais la tete avec une copie de fichier mais c'est peut etre pas toi ...
 
ah ouais c'est bien ca mais pais vraiment pareil ... Tu as résollu ce problème au fait?
 
http://forum.hardware.fr/forum2.php3?post=27973&cat=10


Message édité par darklord le 03-12-2002 à 17:34:04

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-12-2002 à 09:42:57    

DarkLord a écrit a écrit :

 
 
bin non ca n'existe pas. File est suffisament flexible pour te permettre de faire ca sans trop te casser la tête ... Et sinon je me souviens d'un de tes topics ou tu te cassais la tete avec une copie de fichier mais c'est peut etre pas toi ...
 
ah ouais c'est bien ca mais pais vraiment pareil ... Tu as résollu ce problème au fait?
 
http://forum.hardware.fr/forum2.php3?post=27973&cat=10




 
Le probleme c'est resolu tout seul lorsque je suis passé sur la machine SUN .  :ouch:  :ouch:  :ouch:


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 05-12-2002 à 11:07:49    

J'ai fait ma copie de fichiers par contre, le temps est tres long ...  
De l'ordre de 30 secondes pour 900 Ko . J'ai essayé avec et sans Buffered....Stream et ça change pas grand chose
Code :
...
FileInputStream inStream = new FileInputStream(ff);
BufferedInputStream bIn = new BufferedInputStream(inStream);
File dstFile = new File(dirDest, ff.getName());
FileOutputStream outStream = new FileOutputStream(dstFile);
BufferedOutputStream bOut = new BufferedOutputStream(outStream);
// tant que ce n'est pas la fin du fichier
while (bIn.available() > 0)
    bOut.write(inStream.read());
// fermeture des fichiers
inStream.close();
outStream.close();
bIn.close();
bOut.close();
...


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Marsh Posté le 05-12-2002 à 11:07:49   

Reply

Marsh Posté le 05-12-2002 à 11:32:04    

PERSEPOLIS a écrit a écrit :

J'ai fait ma copie de fichiers par contre, le temps est tres long ...  
De l'ordre de 30 secondes pour 900 Ko . J'ai essayé avec et sans Buffered....Stream et ça change pas grand chose
Code :
...
FileInputStream inStream = new FileInputStream(ff);
BufferedInputStream bIn = new BufferedInputStream(inStream);
File dstFile = new File(dirDest, ff.getName());
FileOutputStream outStream = new FileOutputStream(dstFile);
BufferedOutputStream bOut = new BufferedOutputStream(outStream);
// tant que ce n'est pas la fin du fichier
while (bIn.available() > 0)
    bOut.write(inStream.read());
// fermeture des fichiers
inStream.close();
outStream.close();
bIn.close();
bOut.close();
...




 
bin tu bufférises pas là hein, c'est normal que ce soit lent ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 05-12-2002 à 11:34:56    

DarkLord a écrit a écrit :

 
 
bin tu bufférises pas là hein, c'est normal que ce soit lent ...




 
Comme ca, ca a l'air d'être mieux ...
 
byte[] line = new byte[1024];
int bytes = 0;
FileInputStream inStream = new FileInputStream(ff);
BufferedInputStream bIn = new BufferedInputStream(inStream);
File dstFile = new File(dirDest, ff.getName());
FileOutputStream outStream = new FileOutputStream(dstFile);
BufferedOutputStream bOut = new BufferedOutputStream(outStream);
// tant que ce n'est pas la fin du fichier
while(0 <(bytes = bIn.read(line))){
 bOut.write(line,0, bytes);
}


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed