package com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
*
* @author ly(关于Zip压缩文件)
*
*/
public class Sample {
public void zip(String zipname,File file){
try {
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipname));
myzip(out, file,"");
System.out.println("文件压缩中...");
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void myzip(ZipOutputStream out, File f, String base) throws Exception {
if(f.isDirectory()){
File [] f1=f.listFiles();
out.putNextEntry(new ZipEntry(base+"/"));
for(int i=0;i<f1.length;i++){
myzip(out, f1[i], base+f1[i]);
}
}
else{
out.putNextEntry(new ZipEntry(base));
FileInputStream in=new FileInputStream(f);
int j;
System.out.println(base);
while((j=in.read())!=-1){
out.write(j);
}
in.close();
}
}
public static void main(String args[]) {
Sample s=new Sample();
s.zip("d:/b.zip", new File("d:/a"));
System.out.println("文件压缩完成");
}
}