Ik heb de recente vragen hierover doorgenomen, maar ik kan geen oplossing voor mijn probleem vinden. Ik moet een map zipen met een aantal mappen die allemaal inhoud bevatten (in feite tekstbestanden). Wanneer ik de zip open, wil ik dezelfde lijst met mappen terughalen.
Mijn probleem is dat ik de inhoud kan inpakken, maar mijn zipbestand komt ofwel uit met de gewone bestanden (geen mappen) of het komt corrupt uit. Heeft iemand dit gedaan?
De code die ik post, heeft corrupte of ogenschijnlijk lege ritsen geproduceerd. Hier zijn mijn methoden (samengevat)
openbare zipir
File dirObj = new File(fileDirectory);
String outFilename = zipDirectory+File.separatorChar+filename+".zip";
log.info("Zip Directory: " + outFilename);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
System.out.println("Creating : " + outFilename);
addDir(dirObj, out);
out.close();
addDir
File[] files = dirObj.listFiles();
byte[] tmpBuf = new byte[1024];
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out);
continue;
}
FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
System.out.println(" Adding: " + files[i].getAbsolutePath());
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
int len;
while ((len = in.read(tmpBuf)) > 0) {
out.write(tmpBuf, 0, len);
}
out.closeEntry();
in.close();
}
Hoofd
zipDir(filename, properties);