Bonjour à tous,

Je dézippe un fichier zip pour ensuite le rezipper dans un autre fichier. Je fais cela parce que je dois ajouter 2 nouveaux fichiers au zip.
Le problème est que ce fichier zip contient un répertoire, donc j'ai quelques soucis.
Existe-t-il un moyen de détecter si un ZipEntry est un répertoire?

J'ai absolument besoin de détecter et recréer ce répertoire car ensuite je dois y ajouter les 2 fichiers dans ce répertoire.

Voici le code que j'utilise pour dézipper un fichier pour le rezipper dans un autre.

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
      cat.info("FilePath: " + filepath);
          int bufferSize = 2048;
          byte data[] = new byte[bufferSize];
 
 
          ZipInputStream zis = new ZipInputStream (new FileInputStream(filepath));
          file = new File(filename);
          String newFilePath = file.getAbsolutePath().toString();
          ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(file));
          ZipEntry getEntry;
          String directory;
 
 
            while ((getEntry = zis.getNextEntry()) != null)
            {
                File fileEntry = new File(getEntry.getName());
                if(!fileEntry.isDirectory())
                {
 
                // création d'un flux de lecture
	            FileInputStream fi = new FileInputStream(getEntry.getName());
 
	            // création d'un tampon de lecture sur ce flux
	            BufferedInputStream buffi = new BufferedInputStream(fi, bufferSize);
                ZipEntry setEntry = new ZipEntry(getEntry.getName());
                zos.putNextEntry(setEntry);
 
                int count;
	            while((count = buffi.read(data, 0, bufferSize)) != -1) 
                           {
	               out.write(data, 0, count);
				}
 
                cat.info("entry.getName() : "+getEntry.getName());
                zos.closeEntry();
                zis.closeEntry();
                }
                else
                    {
                        directory = fileEntry.getName();
                        cat.info("This is a directory : "+directory);
                    }
 
            }
            zis.close();
            zos.close();
D'avance merci pour vos réponses