文档章节

解压zip包(zip4j)

uug
 uug
发布于 2018/10/23 20:13
字数 376
阅读 8
收藏 0

1:引入zip4j_1.3.2.jar

2:源码如下:

package test;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;

public class UnZipUtil {

	public static void main(String[] args) throws IOException {
		String zipPath = "D:\\test\\APP2.4.zip";//文件的路径
		String descDir = "D:\\test\\APP2.4";//需要解压到的路径
		unZipFiles(new File(zipPath), descDir);
	}
	/**
	 * zip解压工具类
	 * @Description: TODO
	 * @param @param zipFile:文件的路径
	 * @param @param descDir:需要解压到的路径
	 * @param @throws IOException   
	 * @return void  
	 * @throws
	 * @author uug
	 * @date 2018年10月23日
	 */
	@SuppressWarnings("unchecked")
	public static  void unZipFiles(File zipFile,String descDir)throws IOException{
		 try {
			ZipFile zFile = new ZipFile(zipFile);// 首先创建ZipFile指向磁盘上的.zip文件
			zFile.setFileNameCharset("utf-8");
			//判断目录是否存在,不存在的话要新建  
	        File file = new File(descDir);  
	        if(!file.exists() && !file.isDirectory()){  
	            file.mkdir();  
	        }
			File descDirDir = new File(descDir);// 解压目录   
			/*if (zFile.isEncrypted()) {
			  zFile.setPassword(password.toCharArray());// 设置密码   
			}*/
			zFile.extractAll(descDir);// 将文件抽出到解压目录(解压)   
			List<net.lingala.zip4j.model.FileHeader> headerList = zFile.getFileHeaders();
			List<File> extractedFileList = new ArrayList<File>();
			for(FileHeader fileHeader : headerList) {
				if (!fileHeader.isDirectory()) {
				extractedFileList.add(new File(descDirDir,fileHeader.getFileName()));
				}
			}
			File [] extractedFiles = new File[extractedFileList.size()];
			extractedFileList.toArray(extractedFiles);
			for(File f:extractedFileList){
			  System.out.println(f.getAbsolutePath()+"....");
			}
         }catch(ZipException e){
        	 System.out.println("解压失败:"+e.getMessage());
         }
    }
	/**
	 * 删除zipPath目录下所有的zip文件
	 * @Description: TODO
	 * @param @param zipPath:zip文件的目录
	 * @param @return   
	 * @return String  
	 * @throws
	 * @author uug
	 * @date 2018年10月23日
	 */
	 public static  String delZipFile(String zipPath){
		  try{
			 File file=new File(zipPath);
		     if (file.isDirectory()) {
	            File[] files = file.listFiles();
	            for (File f : files) {
	                if (f.getName().endsWith(".zip")) {  // zip文件  判断 是否存在
	                  if(f.delete()) {
	                     //log.info("zip文件已经删除");
	                  }else{
	                      //log.info("zip文件删除失败");
	                  }
	                }
	            }
		     }
		  }catch(Exception e){
			  System.out.println("删除zip解压包失败:"+e.getMessage());
		  }
		 return null;
	    }
}

 

© 著作权归作者所有

共有 人打赏支持
uug

uug

粉丝 8
博文 42
码字总数 18446
作品 0
河池
私信 提问
ZIP4J---ZIP文件压缩与解压缩学习

最近公司准备让各项目组提供公共工具组件,手中正好无事便研究其中一个工具 - 文件压缩与解压缩工具。 目前JAVA API已提供对于ZIP文件的压缩与解压缩,但网上总结不支持ZIP文件加密与解密甚至...

皮蛋猫
2013/09/06
0
2
POI读取通过xml修改的docx文件报错。

我通过zip4j解压docx,修改其中的document.xml文件来实现编辑word。然后我将修改完的文件压缩,然后通过POI来读取,报错: zip4j压缩代码: POI读取代码: 错误信息是在看不懂,zip4j的压缩方...

KeybMan
2017/10/25
128
0
zip压缩问题

java压缩了zip文件,linux下用unzip解压,中文名称乱码,网上查的都不对,1是用 ant下面的试过也是乱码2设置gbk还是乱码,3用过zip4j 解压还是乱码,设置编码gbk utf-8 也试过了,还是乱码,...

obhen
2017/10/25
258
5
springboot添加邮件发送及压缩功能

springboot添加邮件发送及文件压缩功能 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190233.html   先来一段诗 `   就这样吧   忍受折磨   然后,躺进医院   然后,死去...

funnyZpC
2018/07/14
0
0
Zip4j开源jar包的简单使用

package com.fenghao.zip; import java.io.File; import java.util.ArrayList; import java.util.Collections; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception......

余平的余_余平的平
2018/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一枚戒指,一场仪式,这件事阿里巴巴坚持了15年

为入职满五年的员工举行盛大仪式,为他们每个人戴上私人订制的戒指,是阿里巴巴坚持了15年“五年陈”的传统。1月22日,阿里集团为最新一季的“五年陈”们举行了授戒仪式。 2018五年陈小档案 ...

阿里云官方博客
30分钟前
2
0
前后端常见的几种鉴权方式

什么是鉴权 鉴权是指验证用户访问系统的权力 常用的鉴权有四种: HTTP Basic Authentication session-cookie Token 验证 OAuth(开放授权) HTTP Basic Authentication 这种授权方式是浏览器遵...

小草先森
32分钟前
3
0
Spring Cloud 微服务搭建注意的几个点

参考教程 https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 1)@EnableEurekaServer 引入标红,引入失败 ; @EnableEurekaClient 亦同 其中会出现 @EnableEurekaServer 引入......

阿白
38分钟前
3
0
PyCharm入门教程——在编辑器中打开和重新打开文件

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
41分钟前
2
0
数据生产与收集

数据 对于移动端的app来说, 分析的数据大致上都可以分为俩种, 一种是在线数据,一种是离线数据。 在线数据, 即app后端服务所产生的日志数据,例如服务接口的性能数据, 服务接口的调用及其...

hblt-j
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部