这是在之前项目用到的一段程序,还算是很实用的,分享出来给大家,可以当做接口直接调用
/**
* zip文件压缩
* @param list 需要加压的文件列表
* @param desPath 最终Zip文件所在路径
* @param desZipName最终Zip文件名
* @throws Exception
*/
public static void errorDownLoad(List list,String desPath,String desZipName) throws Exception {
byte[] buffer = new byte[1024];
//最终生成的zip路径位置和名字
File f = new File(desPath,desZipName);
File parent = new File(f.getParent());
if(!parent.exists())
parent.mkdirs();
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f));
try{
for (int j = 0; j < list.size(); j++) {
FileInputStream fis = new FileInputStream(list.get(j));
String paString = list.get(j).getPath().replaceAll("\\\\", "/");
out.putNextEntry(new ZipEntry(paString.substring(paString.lastIndexOf("/") + 1)));
int len;
// 读入需要下载的文件的内容,打包到zip文件
while ((len = fis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.closeEntry();
fis.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
out.close();
}