ZipArchiveOutputStream zipOutput = null;
try {
String folderPath = "d:\\测试文件夹";
File zipFile = new File("d:\\demo.zip");
zipOutput = (ZipArchiveOutputStream) new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.ZIP, new FileOutputStream(zipFile));
zipOutput.setEncoding("UTF-8");
zipOutput.setUseZip64(Zip64Mode.AsNeeded);
File[] files = new File(folderPath).listFiles();
for(File file : files){
InputStream in = null;
try {
in = new FileInputStream(file);
ZipArchiveEntry entry = new ZipArchiveEntry(file, file.getName());//zipOutput.createArchiveEntry(logFile, logFile.getName());
zipOutput.putArchiveEntry(entry);
IOUtils.copy(in, zipOutput);
zipOutput.closeArchiveEntry();
}finally{
if(in != null){
try {
in.close();
} catch (Exception e) { }
}
}
}
zipOutput.finish();
zipOutput.close();
}catch(Exception e){
if(zipOutput != null){
try {
zipOutput.close();
} catch (Exception e1) { }
}
throw e;
}