Copie de fichiers ou duplication d'un répertoire - Java - Programmation
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 ?
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 ? |
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
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 ?
Marsh Posté le 03-12-2002 à 16:19:34
renommer ca veut dire ce que ca veut dire hein
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)
Marsh Posté le 03-12-2002 à 16:27:01
Citation : renommer ca veut dire ce que ca veut dire hein |
j'ai jamais essayé ".renameTo" donc je préfère pas m'engager.
mais c'est vrai que ca parait logique.
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
Boude pas Dark
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 |
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
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 .
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();
...
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 ...
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);
}
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.