package com.chauvet.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration; import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile; public class ZipUtils {
/**
* 解压到指定目录
* @param zipPath
* @param descDir
* @author isea533
*/
public static void unZipFiles(String zipPath,String descDir)throws IOException{
unZipFiles(new File(zipPath), descDir);
}
/**
* 解压文件到指定目录
* @param zipFile
* @param descDir
* @author isea533
*/
@SuppressWarnings("rawtypes")
public static void unZipFiles(File zipFile,String descDir)throws IOException{
File pathFile = new File(descDir);
if(!pathFile.exists()){
pathFile.mkdirs();
}
ZipFile zip = new ZipFile(zipFile);
for(Enumeration entries = zip.getEntries();entries.hasMoreElements();){
ZipEntry entry = (ZipEntry)entries.nextElement();
String zipEntryName = entry.getName();
InputStream in = zip.getInputStream(entry);
String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");;
//判断路径是否存在,不存在则创建文件路径
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
if(!file.exists()){
file.mkdirs();
}
//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
if(new File(outPath).isDirectory()){
continue;
}
//输出文件路径信息
System.out.println(outPath); OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close();
}
System.out.println("******************解压完毕********************");
} public static void main(String[] args) { try {
/**
* 解压文件
*/
// File zipFile = new File("F:/tesst.zip");
File zipFile = new File("F:/tesst - 副本.zip");
String path = "F:/tesst";
unZipFiles(zipFile, path);
} catch (Exception e) {
e.printStackTrace();
}
}
}

最新文章

  1. HTML5模仿逼真地球自转
  2. SDN跟网络虚拟化的完美结合
  3. [转] easyui 获取数据表格中选中行的数据 Get selected row data from...
  4. @property语句
  5. [PE结构分析] 11.资源表结构
  6. bzoj4152 [AMPPZ2014]The Captain
  7. python--web.py使用
  8. Ubuntu下命令行cd进不了/home/用户目录
  9. Linux 的使用基础---Linux的常用命令
  10. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.4
  11. StyleCop安装及配置
  12. C#_事件委托
  13. 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
  14. [Android4.4.3] Nubia Z5S Mokee4.4.3 RC2.0 by syhost
  15. 离别·伤
  16. 100、RESTful API
  17. Ubuntu 16.04 nvidia-smi报错(重装Nvidia驱动)
  18. 通过URL触发Jenkins构建
  19. 2.java面向对象类与类/类与对象之间关系详解
  20. ftp文件共享服务详解

热门文章

  1. centos7: iptables保存(配置完nginx的web规则后)
  2. JSP中scope属性 scope属性决定了JavaBean对象存在的范围
  3. 浏览器编辑web页面的方法
  4. laravel实现定时器功能
  5. iosFQ教程
  6. quartz---的一个简单例子
  7. redis中的"HashMap"
  8. kernel jenkins build script
  9. CF 459A && 459B && 459C && 459D && 459E
  10. 练习vue(class,style属性)