Bonjour à tous :
Je debute "toujours" avec javaet j'ai le problème suivant
J'ai utilisé l'excellent tuto de Hugo ETIEVANT pour me familiariser avec les fichiers zip en java . http://cyberzoide.developpez.com/java/zip/
Cependant j'ai le soucis suivant avec la class unzip : dans le cas ou le fichier zip contient des repertoires et sous repertoires , j'ai le message d'erreur suivant (uniquement si les repertoires n'existent pas encore)
Que faut il modifier ou ajouter à la class "unzip" pour creer aussi les sous repertoires si besoinP:\TEST>java unzip RET\toto.zip
Extracting: fichier1.xml
Extracting: jsp/include/fichier2.jsp
java.io.FileNotFoundException: jsp\include\fichier2.jsp (Le chemin d'accès spécifié est introuvable)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at unzip.main(unzip.java:59)
Merci de votre aide
@argoet
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
78
79
80
81
82
83 import java.io.*; import java.util.*; import java.util.zip.*; import java.util.Enumeration; /** * Classe de création d'une archive Zip * à partir des fichiers du répertoire courant. * * D'après un exemple de la documentation officielle Java Sun * http://java.sun.com/developer/technicalArticles/Programming/compression/ * * Author: Hugo ETIEVANT */ public class unzip { /** * Taille générique du tampon en lecture et écriture */ static final int BUFFER = 2048; /** * Programme principal. */ public static void main (String argv[]) { /************* * Décompression *************/ try { // fichier destination BufferedOutputStream dest = null; // ouverture fichier entrée FileInputStream fis = new FileInputStream(argv[0]); // ouverture fichier de buffer BufferedInputStream buffi = new BufferedInputStream(fis); // ouverture archive Zip d'entrée ZipInputStream zis = new ZipInputStream(buffi); // entrée Zip ZipEntry entry; // parcours des entrées de l'archive while((entry = zis.getNextEntry()) != null) { // affichage du nom de l'entrée System.out.println("Extracting: " +entry); int count; byte data[] = new byte[BUFFER]; // création fichier FileOutputStream fos = new FileOutputStream(entry.getName()); // affectation buffer de sortie dest = new BufferedOutputStream(fos, BUFFER); // écriture sur disque while ((count = zis.read(data, 0, BUFFER)) != -1) { dest.write(data, 0, count); } // vidage du tampon dest.flush(); // fermeture fichier dest.close(); } // fermeture archive zis.close(); } catch(Exception e) { e.printStackTrace(); } }
Partager