Zip4j解压文件

使用 zip4j 可以快速对文件进行解压缩处理

官网

zip4j

特性

  1. 支持Zip文件的创建、添加、解压、更新、移除
  2. 可读写有密码保护的Zip文件
  3. 支持AES 128/256算法加密
  4. 支持标准Zip算法加密
  5. 支持Zip64格式
  6. 支持分块Zip文件的创建和解压
  7. 支持Unicode编码的文件名
  8. 支持进度监控

添加Maven依赖

1
2
3
4
5
<dependency>
    <groupId>net.lingala.zip4j</groupId>
    <artifactId>zip4j</artifactId>
    <version>1.3.2</version>
</dependency>

解压实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 获取Zip文件
ZipFile zipFile = new ZipFile(file);
// 指定文件名编码
zipFile.setFileNameCharset("GBK");

// 验证文件有效性
if (!zipFile.isValidZipFile()) {
    responseData.setError("压缩文件已损坏!");
    return;
}

// 解压目录
File fileDir = new File(newFile);

// 目录不存在则创建
if (fileDir.isDirectory() && !fileDir.exists()) {
    fileDir.mkdir();
}

// 解压
zipFile.extractAll(newFile);