java递归将文件夹下的所有文件打zip包
package com.wq.com.zipFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class zipFile {
public static void main(String[] args) {
String zipFileName = "D:/www.zip";
String inputFileName = "D:/www/";
boolean flag = zip(zipFileName,new File(inputFileName));
System.out.println(flag);
}
public static boolean zip(String zipFileName,File inputFile){
boolean flag = false;
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
flag = zip(out,inputFile,"");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
private static boolean zip(ZipOutputStream out, File f, String base) {
FileInputStream in = null;
try {
if(f.isDirectory()){
File[] files = f.listFiles();
out.putNextEntry(new ZipEntry(base+"/"));
base=base+"/";
for (int i = 0; i < files.length; i++) {
zip(out,files[i],base+files[i].getName());
}
}else{
out.putNextEntry(new ZipEntry(base));
in = new FileInputStream(f);
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}finally{
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
}
}
}
}