Java打包文件夹以及子文件夹为zip包
来源:互联网 发布:高中教学软件 编辑:程序博客网 时间:2024/06/05 10:43
Java打包文件夹以及子文件夹为zip包
package com.dss.common.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ZipUtil { private static final Logger log = LoggerFactory.getLogger(ZipUtil.class); private ZipUtil() { } /** * 创建ZIP文件 * @param sourcePath 文件或文件夹路径 * @param zipPath 生成的zip文件存在路径(包括文件名) * @param isDrop 是否删除原文件:true删除、false不删除 */ public static void createZip(String sourcePath, String zipPath,Boolean isDrop) { FileOutputStream fos = null; ZipOutputStream zos = null; try { fos = new FileOutputStream(zipPath); zos = new ZipOutputStream(fos); zos.setEncoding("gbk");//此处修改字节码方式。 //createXmlFile(sourcePath,"293.xml"); writeZip(new File(sourcePath), "", zos,isDrop); } catch (FileNotFoundException e) { log.error("创建ZIP文件失败",e); } finally { try { if (zos != null) { zos.close(); } } catch (IOException e) { log.error("创建ZIP文件失败",e); } } } /** * 清空文件和文件目录 * * @param f */ public static void clean(File f) throws Exception { String cs[] = f.list(); if (cs == null || cs.length <= 0) { System.out.println("delFile:[ " + f + " ]"); boolean isDelete = f.delete(); if (!isDelete) { System.out.println("delFile:[ " + f.getName() + "文件删除失败!" + " ]"); throw new Exception(f.getName() + "文件删除失败!"); } } else { for (int i = 0; i < cs.length; i++) { String cn = cs[i]; String cp = f.getPath() + File.separator + cn; File f2 = new File(cp); if (f2.exists() && f2.isFile()) { System.out.println("delFile:[ " + f2 + " ]"); boolean isDelete = f2.delete(); if (!isDelete) { System.out.println("delFile:[ " + f2.getName() + "文件删除失败!" + " ]"); throw new Exception(f2.getName() + "文件删除失败!"); } } else if (f2.exists() && f2.isDirectory()) { clean(f2); } } System.out.println("delFile:[ " + f + " ]"); boolean isDelete = f.delete(); if (!isDelete) { System.out.println("delFile:[ " + f.getName() + "文件删除失败!" + " ]"); throw new Exception(f.getName() + "文件删除失败!"); } } } private static void writeZip(File file, String parentPath, ZipOutputStream zos,Boolean isDrop) { if(file.exists()){ if(file.isDirectory()){//处理文件夹 parentPath+=file.getName()+File.separator; File [] files=file.listFiles(); if(files.length != 0) { for(File f:files){ writeZip(f, parentPath, zos,isDrop); } } else { //空目录则创建当前目录 try { zos.putNextEntry(new ZipEntry(parentPath)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }else{ FileInputStream fis=null; try { fis=new FileInputStream(file); ZipEntry ze = new ZipEntry(parentPath + file.getName()); zos.putNextEntry(ze); byte [] content=new byte[1024]; int len; while((len=fis.read(content))!=-1){ zos.write(content,0,len); zos.flush(); } } catch (FileNotFoundException e) { log.error("创建ZIP文件失败",e); } catch (IOException e) { log.error("创建ZIP文件失败",e); }finally{ try { if(fis!=null){ fis.close(); } if(isDrop){ clean(file); } }catch(IOException e){ log.error("创建ZIP文件失败",e); } catch (Exception e) { e.printStackTrace(); } } } } } }
阅读全文
0 0
- Java打包文件夹以及子文件夹为zip包
- java实现压缩指定文件夹(文件夹包含子文件夹或文件)为zip格式压缩包
- 文件夹打包成ZIP包
- LINUX下文件夹打包为ZIP格式
- php zip 打包文件夹
- php zip 打包文件夹
- (Java控制台程序版)递归打包整个父文件夹下的文件和子文件夹成压缩文件(*.ZIP)以及打包时常见的文件乱码和文件名乱码以及丢失文件或文件损坏问题解决办法
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- unity打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- java把文件夹(目录)子文件夹打成zip文件
- JAVA 将文件夹打成ZIP包
- 将文件夹压缩成zip包以及解压zip包到指定的文件夹
- 将指定文件夹里的文件打包为zip
- java压缩文件夹包含所有子文件夹以及子文件
- java实现文件夹下解压jar包和zip包
- java 将指定文件夹递归的进行zip打包压缩
- java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)
- margin-top、padding-top的值是百分比该如何计算
- 初学Android之viewPager+imageLoader+图片圆角(类似qq头像)+xListView+DrawLayout
- 推荐一个 linux资料大全的 linux技术导航站
- MySQL免安装版安装步骤
- webService(cxf)生成客户端报错解决
- Java打包文件夹以及子文件夹为zip包
- 百度创始人----李彦宏
- Java笔记(一):接口、静态变量、重写重载、获得新线程、常见异常、枚举、字节流字符流
- Android中手机的网络状态(判断是否联网/3G/4G/WIFI)
- [codevs4888零件分组][codevs1044拦截导弹]
- 1027. 打印沙漏(20)
- 常用vim指令
- <搬运>HTML参考手册
- matlab画图(复数的直角坐标和极坐标)(-)