JAVA解压文件
2024-08-28 22:19:18
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();
}
}
}
最新文章
- HTML5模仿逼真地球自转
- SDN跟网络虚拟化的完美结合
- [转]	easyui 获取数据表格中选中行的数据 Get selected row data from...
- @property语句
- [PE结构分析] 11.资源表结构
- bzoj4152 [AMPPZ2014]The Captain
- python--web.py使用
- Ubuntu下命令行cd进不了/home/用户目录
- Linux 的使用基础---Linux的常用命令
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.4
- StyleCop安装及配置
- C#_事件委托
- 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码
- [Android4.4.3] Nubia Z5S Mokee4.4.3 RC2.0 by syhost
- 离别&;#183;伤
- 100、RESTful API
- Ubuntu 16.04 nvidia-smi报错(重装Nvidia驱动)
- 通过URL触发Jenkins构建
- 2.java面向对象类与类/类与对象之间关系详解
- ftp文件共享服务详解
热门文章
- centos7: iptables保存(配置完nginx的web规则后)
- JSP中scope属性 scope属性决定了JavaBean对象存在的范围
- 浏览器编辑web页面的方法
- laravel实现定时器功能
- iosFQ教程
- quartz---的一个简单例子
- redis中的";HashMap";
- kernel jenkins build script
- CF 459A &;&; 459B &;&; 459C &;&; 459D &;&; 459E
- 练习vue(class,style属性)