[ZIP] Détecter un repertoire
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:
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