Bonjour,
j'essai de compresser un repertoire mais mon .zip reste vide...
voici mon code:
ma methode qui liste les fichiers du dossier
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 public void compresser (File file,String strDest) throws Exception{ ArrayList<String> liste = new ArrayList<String>(); this.listerFichier(file, liste); // taille de tampon final int BUFFER = 2048; byte data[] = new byte[BUFFER]; //flux d'écriture (archive) FileOutputStream dest = new FileOutputStream(strDest); // FileInputStream dest2 = new FileInputStream(strDest); // buffer de sorti BufferedOutputStream buff = new BufferedOutputStream(dest); // Buff //flux d'écriture ZipOutputStream out = new ZipOutputStream(buff); out.setMethod(ZipOutputStream.DEFLATED); // methode de compression out.setLevel(9); // niveau de compression byte[] buf = new byte[1024]; int taille = liste.size(); for (int i = 0 ; i< taille ; i++ ){ // on recupère le fichier System.out.println(liste.get(i)); FileInputStream fi = new FileInputStream(liste.get(i)); //buffer d'entree // BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER); // //creation d'une entree zip ZipEntry entry = new ZipEntry(liste.get(i)); // affectation de l'entree au flux de sortie out.putNextEntry(entry); //Écriture des entrées dans le flux de sortie par paquet de taille //égale aux tampons dentrée et de sortie int count; // while((count = buffi.read(data, 0, BUFFER)) != -1) { // out.write(data, 0, count); // } int len; while ((len = fi.read(buf)) > 0) { out.write(buf, 0, len); } //fermeture de l'entree en cours et du flux out.closeEntry(); fi.close(); } // out.close(); }
quelqu'un peut me dire ce qui va pas??
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 public void listerFichier(File file,ArrayList liste){ // si c'est un répertoire if (file.isDirectory()){ // on liste les sous dossier et fichier qu'il contient File[] files = file.listFiles(); // si non vide if (files!=null){ int taille= files.length; for (int i = 0; i< taille ; i++){ // on regarde si c'est un repertoire if (files[i].isDirectory()){ this.listerFichier(files[i],liste); } else // on ajoute a la liste des fichiers liste.add(files[i].getAbsolutePath()); } } } else //on ajoute a la liste des fichiers liste.add(file.getAbsolutePath()); }
merci
Partager