Copie récursive de répertoire en gardant le répertoire parent
Bonjour,
j'essaiye de copier un répertoire de manière récursive en gardant le répertoire parent, mais seul les répertoires sont créé mais pas les fichier qu'ils contiennent.
Voici l'arborescence que j'utilise
Code:
1 2 3 4 5 6 7 8 9
|
Rep-Parent
|---Fichier1
|---Rep-Fils1
|---Rep-Fils2
|--Fichier-Petit-Fils
|---Rep-Petits-Fils
|-- Rep-Arrière-Petits-Fils
|--Fichier |
Notez bien que je veux garder le répertoire parent. voici comment j'appel ma fonction de copie dans mon main
Code:
new Test().copy(new File("/home/Rep-Parent"), new File("/tmp"));
et voici ce que je veux obtenir dans tmp quand je parle de répertoire parent avec les sous répertoire bien entendu.
Voici ma fonction copy
Code:
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
| public static void copy(File src, File dest) throws Exception {
if (src.isDirectory()) {
File remoteDir = new File(dest, src.getName());
remoteDir.mkdir();
File newDest = new File(dest, src.getName());
File[] paths = src.listFiles();
for (File file : paths) {
System.out.println("FILE "+file);
copy(file, newDest);
}
} else if(src.isFile()){
//if file, then copy it
System.out.println(src+ " COPIER DANS " + dest);
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
} |
Si quelqu'un voit où ça coince ça m'aidera
Merci