zip4j 解压

/**

解压

**/
public class ExtractAllFiles {

public static int extractAllFiles(String unZipfile, String afterunZipfile, String password) {
try {
int reuslt = 1;
ZipFile zipFile = new ZipFile(unZipfile);

zipFile.setRunInThread(true);

//如果 压缩文件 是加密的 ,则 设置密码
if (zipFile.isEncrypted()) {
zipFile.setPassword(password);
}
ProgressMonitor progressMonitor = zipFile.getProgressMonitor();//开启压缩监听
//开始 解压(全部)
zipFile.extractAll(afterunZipfile);

System.out.println("开始解压=========="+progressMonitor.getState()+"解压结果"+progressMonitor.getResult());

//以下 为 监听过程,不影响 实际解压缩过程;
//开始解压时,状态码为 1:解压状态; 结果码为:0 正常状态; 进入 循环监听;
while (progressMonitor.getState() == ProgressMonitor.STATE_BUSY) {
switch (progressMonitor.getCurrentOperation()) {
case ProgressMonitor.OPERATION_NONE:
System.out.println("没有正在执行操作");
break;
case ProgressMonitor.OPERATION_ADD:
System.out.println("添加操作");
break;
case ProgressMonitor.OPERATION_EXTRACT:
System.out.println("提取操作"+" 解压 结果 "+progressMonitor.getResult());
break;
case ProgressMonitor.OPERATION_REMOVE:
System.out.println("删除操作");
break;
case ProgressMonitor.OPERATION_CALC_CRC:
System.out.println("Calcualting CRC");
break;
case ProgressMonitor.OPERATION_MERGE:
System.out.println("合并操作");
break;
default:
System.out.println("无效的操作");
break;
}
}
//若 解压时出现失败情况 则 结果码 变成2:失败状态;若解压正常,结果码 一直保持 0 状态;
reuslt = progressMonitor.getResult();

//如果 解压 不成功 ,则 删除 该文件
if(progressMonitor.getResult()!=0){
File file = new File(afterunZipfile);
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
file.delete();
}
}

System.out.println("Result++++++++++++++++++++: " + progressMonitor.getResult()+"--------"+progressMonitor.getState() );

return reuslt;
} catch (ZipException e) {
//出现异常 ,删除文件,返回 1 异常状态;
File file = new File(afterunZipfile);
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
file.delete();
}
e.printStackTrace();
return 1;
}
}

/**
* @param args
*/
public static void main(String[] args) {
String unZipfile = "C:\\Users\\Administrator\\Desktop\\ETC\\964ck20141025-28.zip";
String password = "123";
String afterunZipfile = "C:\\Users\\Administrator\\Desktop\\ETC\\28";
int reuslt = extractAllFiles(unZipfile, afterunZipfile, password);
System.out.println("完成结果:" + reuslt);
}

}

时间: 2024-10-10 08:39:51

zip4j 解压的相关文章

android zip4j之--解压zip文件并实时显示解压进度

Zip文件是我们经常用到压缩文件格式,android中在进行网络请求大批量数据时,通常会采用传递zip文件,这样做即可以减少网络流量的消耗,加快请求的响应速度,又可以减少对存储空间的要求,所以当我们将zip文件读取回来的时候,如何解压就是一个要解决的问题,虽然java本身提供了zip相关的API,但不是很强大,所以我们采用apache开源组织的zip4j,通过这个jar包可以十分轻松的解压zip文件. 回到项目中去,项目中有个需求是从服务器请求杂志,请求回来后给读者展示,但是由于公司自己做的电子

使用JAVA解压加密的中文ZIP压缩包

近来项目中需要对ZIP压缩包解压,然后将解压后的内容存放到指定的目录下. 该压缩包的特性: 使用标准的zip压缩格式(压缩算法没有深入探究) 压缩包中带有目录并且目录名称是中文 压缩时加了密码 因为jre中自带的java.util.zip.*包不支持中文及加密压缩,所以选择使用zip4j包. 下面是解压的实现代码: 1 public class UnZip { 2 private final int BUFF_SIZE = 4096; 3 4 /* 5 获取ZIP文件中的文件名和目录名 6 */

Android之zip文件加密解压及进度条的实现

zip文件的解压能够使用java的zip库,可是没有实现对加密文件的解压功能,这里能够使用zip4j来实现.详细能够參看该文<Android下zip压缩文件加密解密的完美解决方式>.该文件里没有实现解压进度的功能,这里进行一简单的实现. Zip4jSp.java /** * unzip file to dest dir with password in thread. * * @param zipFile * @param dest * @param passwd * @param chars

java实现文件压缩与解压

用java实现文件的压缩与解压是很常见的功能. 我最爱上代码: 1 import java.io.File; 2 import java.util.ArrayList; 3 import java.util.List; 4 5 import net.lingala.zip4j.core.ZipFile; 6 import net.lingala.zip4j.model.ZipParameters; 7 import net.lingala.zip4j.util.Zip4jConstants; 8

Java基础-压缩解压

几种实现方案 #1.基于java.util.zip: #2.使用zip4j #3.使用org.apache.tools.ant 示例代码 测试代码 <!-- Java zip > zip4j > apache ant --> /** * 方式1 * -基于: java.util.zip * ---https://github.com/Blankj/AndroidUtilCode * ---https://github.com/SearchSunny/Android-zip- * s

C#解压多个文件夹下的多个zip到一个目录下

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using ICSharpCode.SharpZipLib; 7 using ICSharpCode.SharpZipLib.Zip; 8 using ICSharpCode.SharpZipLib.Checksums; 9 10 namespace Unzip 11

linux中解压rar文件

linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm 下载之后进行解压之后,进入rar目录,运行make指令进行安装: [[email protected] rar]# ls acknow.txt license.txt order.htm rarfiles.lst rar.txt unrar default.sfx makefile rar rar_static readme.txt

[转]Ubuntu Linux 安装 .7z 解压和压缩文件

原文网址:http://blog.csdn.net/zqlovlg/article/details/8033456 安装方法: sudo apt-get install p7zip-full 解压文件: 7z x manager.7z -r -o /home/xx解释如下:x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的.如果不在当前目录下要带上完整的目录-r

解压即用,跨Linux发行版PHP7打包

适用环境: 64位Linux 下载地址(18MB): http://pan.baidu.com/s/1ntsrU8x md5sum php-7.0.0-dev-20150502.tar.xz 5a4897aedc5ccf02da1f0340ac6013cb PHP版本是7.0.0开发版,2015年5月2日从Github下载的代码. https://github.com/php/php-src/archive/master.zip 创建用户: sudo groupadd -r png sudo u