资源简介
代码片段和文件信息
package com.whty.api.common.util;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
/**
* ZIP压缩文件操作工具类
* 支持密码
* 依赖zip4j开源项目(http://www.lingala.net/zip4j/)
* 版本1.3.1
* @author ninemax
*/
public class CompressUtil {
/**
* 使用给定密码解压指定的ZIP压缩文件到指定目录
*
* 如果指定目录不存在可以自动创建不合法的路径将导致异常被抛出
* @param zip 指定的ZIP压缩文件
* @param dest 解压目录
* @param passwd ZIP文件的密码
* @return 解压后文件数组
* @throws ZipException 压缩文件有损坏或者解压缩失败抛出
*/
public static File [] unzip(String zip String dest String passwd) throws ZipException {
File zipFile = new File(zip);
return unzip(zipFile dest passwd);
}
/**
* 使用给定密码解压指定的ZIP压缩文件到当前目录
* @param zip 指定的ZIP压缩文件
* @param passwd ZIP文件的密码
* @return 解压后文件数组
* @throws ZipException 压缩文件有损坏或者解压缩失败抛出
*/
public static File [] unzip(String zip String passwd) throws ZipException {
File zipFile = new File(zip);
File parentDir = zipFile.getParentFile();
return unzip(zipFile parentDir.getAbsolutePath() passwd);
}
/**
* 使用给定密码解压指定的ZIP压缩文件到指定目录
*
* 如果指定目录不存在可以自动创建不合法的路径将导致异常被抛出
* @param zip 指定的ZIP压缩文件
* @param dest 解压目录
* @param passwd ZIP文件的密码
* @return 解压后文件数组
* @throws ZipException 压缩文件有损坏或者解压缩失败抛出
*/
public static File [] unzip(File zipFile String dest String passwd) throws ZipException {
ZipFile zFile = new ZipFile(zipFile);
zFile.setFileNameCharset(“GBK“);
if (!zFile.isValidZipFile()) {
throw new ZipException(“压缩文件不合法可能被损坏.“);
}
File destDir = new File(dest);
if (destDir.isDirectory() && !destDir.exists()) {
destDir.mkdir();
}
if (zFile.isEncrypted()) {
zFile.setPassword(passwd.toCharArray());
}
zFile.extractAll(dest);
@SuppressWarnings(“unchecked“)
List headerList = zFile.getFileHeaders();
List extractedFileList = new ArrayList();
for(FileHeader fileHeader : headerList) {
if (!fileHeader.isDirectory()) {
extractedFileList.add(new File(destDirfileHeader.getFileName()));
}
}
File [] extractedFiles = new File[extractedFileList.size()];
extractedFileList.toArray(extractedFiles);
return extractedFiles;
}
/**
* 压缩指定文件到当前文件夹
* @param src 要压缩的指定文件
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-22 16:46 zip带密码压缩解压缩\
文件 10107 2017-02-22 16:20 zip带密码压缩解压缩\CompressUtil.java
文件 131025 2017-02-22 14:34 zip带密码压缩解压缩\zip4j_1.3.2.jar
相关资源
- JAVA JSP工资管理系统 源代码 论文
- Java 课程设计学习成绩管理系统
- 模电,数电,stm32,java等培训视频集
- gson-2.8.0包括sources和javadoc
- RAS算法Java实现
- Java EE互联网轻量级框架整合开发 SS
- 操作系统实验 内存管理 java编写 有界
- java-javaweb以及各种框架教学视频百度
- jd-gui反编译,用来反编译jar包和clas
- 操作系统实验和课设,java实现动态内
- 操作系统课设,用java实现磁盘调度算
- (swing+mysql+jdbc员工管理系统
- 使用servlet和jsp做的一个简易的微博系
- Java中的集合
- 简易宠物商店Java源代码
- 人力资源管理系统带数据库
- java刽子手
- java 设计模式之绘图程序
- springsource.org.apache.commons.logging-1.1.1.
- Java+mysql 教务管理系统 带数据库
- 决策树算法JAVA实现包括C4.5和ID3
- junit-5.2.3.jar
- Java小超市管理系统
- hadoop实战源代码Java
- 基于java校友信息
- java游戏之扫雷
- java游戏之五子棋
- java游戏之聊天室
- 基于java的饭店点餐系统189866
- Java+sqlserver2000做的员工管理系统带
评论
共有 条评论