java zip打包文件夹_java 将指定文件夹递归的进行zip打包压缩

packagetmp.MavenTest;importjava.io.BufferedInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.Date;importjava.util.List;importjava.util.logging.Logger;importjava.util.zip.ZipEntry;importjava.util.zip.ZipOutputStream;//定时将指定文件夹下的所有文件压缩

public classZipFilesUtil {public static voidcompress(File f, String baseDir, ZipOutputStream zos){if(!f.exists()){

System.out.println("待压缩的文件目录或文件"+f.getName()+"不存在");return;

}

File[] fs=f.listFiles();

BufferedInputStream bis= null;//ZipOutputStream zos = null;

byte[] bufs = new byte[1024*10];

FileInputStream fis= null;try{//zos = new ZipOutputStream(new FileOutputStream(zipFile));

for(int i=0; i

String fName=fs[i].getName();

System.out.println("压缩:" + baseDir+fName);if(fs[i].isFile()){

ZipEntry zipEntry= new ZipEntry(baseDir+fName);//zos.putNextEntry(zipEntry);//读取待压缩的文件并写进压缩包里

fis = newFileInputStream(fs[i]);

bis= new BufferedInputStream(fis, 1024*10);int read = 0;while((read=bis.read(bufs, 0, 1024*10))!=-1){

zos.write(bufs,0, read);

}//如果需要删除源文件,则需要执行下面2句//fis.close();//fs[i].delete();

}else if(fs[i].isDirectory()){

compress(fs[i], baseDir+fName+"/", zos);

}

}//end for

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{//关闭流

try{if(null!=bis)

bis.close();//if(null!=zos)//zos.close();

if(null!=fis)

fis.close();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}public static void main( String[] args ) throwsParseException

{

String sourceFilePath= "D:\\Eclipse_XJ\\work_space\\WebProbe\\downloadfiles";

File sourceDir= newFile(sourceFilePath);

File zipFile= new File(sourceFilePath+".zip");

ZipOutputStream zos= null;try{

zos= new ZipOutputStream(newFileOutputStream(zipFile));

String baseDir= "downloadfiles/";

compress(sourceDir, baseDir, zos);

}catch(FileNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}finally{if(zos!=null)try{

zos.close();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

转载:https://blog.csdn.net/u010366748/article/details/78615004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值