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.
D'avance merci pour vos réponses
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();
Partager