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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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