Bonjour,
J'essaie d'écrire un petit bout de code permettant de copier le contenu d'un dossier (sous-dossiers et fichiers).
Voici un exemple de l'arborescence:
-DossierSource
--fichier1
--fichier2
--SousDossier1
---Fichier1
---SousDossier1
----Fichier1
---SousDossier2
----Fichier1
Mon code copie bien les deux premiers fichiers qui sont dans le dossier source mais c'est tout.
J'ai suivis des exemples que j'ai essayé d'adapter.
J'espère que vous pourrez m'aider.
Voici mon code:
Merci
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 package com.ysance.acceleo.module.evtforms.services; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class FileUtils { /** * Copy a directory from a source to a destination. * * @param src Source directory path. * @param dst Destination directory path. */ public static Boolean copy(String source, String dest) { File file = new File(source); if (file.isDirectory()) { File[] list = file.listFiles(); if (list != null) { for (int i = 0; i < list.length; i++) { File sourceFile = new File(source + "\\" + list[i].getName()); File destFile = new File(dest + "\\" + list[i].getName()); if (sourceFile.isDirectory() && !destFile.exists()) { // If the file is a directory and does not exit in the // destination Folder. destFile.mkdir(); copy(sourceFile.getAbsolutePath() + "\\" + sourceFile.getName(), destFile.getName()); } else if (sourceFile.isDirectory() && destFile.exists()) { // If the file is a directory and exits in the // destination Folder. copy(sourceFile.getAbsolutePath() + "\\" + sourceFile.getName(), destFile.getName()); } else if (sourceFile.isFile()) { copyFile(source + list[i].getName(), dest + "\\" + list[i].getName()); } } } } return true; } /** * Copy a file from a source to a destination. * * @param src * Source file path. * @param dst * Destination file path. */ public static void copyFile(String src, String dst) { File source = new File(src); File destination = new File(dst); FileInputStream sourceFile = null; FileOutputStream destinationFile = null; try { destination.createNewFile(); sourceFile = new FileInputStream(source); destinationFile = new java.io.FileOutputStream(destination); // Read by 0.5MB segment. byte buffer[] = new byte[512 * 1024]; int nbRead; while ((nbRead = sourceFile.read(buffer)) != -1) { destinationFile.write(buffer, 0, nbRead); } sourceFile.close(); destinationFile.close(); } catch (Exception e) { } } }
Partager