1.第一步,添加工具包依赖
<!-- https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j -->
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.9.0</version>
</dependency>
2.第二步,编写代码
// 递归解压
public static void unzipAll(String zipFileFullPath,String destPath) throws IOException {
if (null == destPath){ //如果destPath为空 说明是子文件夹 直接使用传进来的 zipFileFullPath
destPath = zipFileFullPath;
}
File file = new File(zipFileFullPath);
ZipFile zipFile = new ZipFile(file);
if (destPath.endsWith(".zip")||destPath.endsWith(".ZIP")){
destPath = zipFileFullPath.substring(0, zipFileFullPath.length() - 4);
}
new File(destPath).mkdir();
zipFile.setCharset(Charset.forName("GBK"));
zipFile.extractAll(destPath);
//file.delete();
// 遍历
File parentDir = new File(destPath);
List<File> fileList = new ArrayList<>();
listFile(parentDir,fileList);
for (File fileItem : fileList){
if (!fileItem.isDirectory()&& (destPath.endsWith(".zip")||destPath.endsWith(".ZIP"))){
unzipAll(fileItem.getAbsolutePath(),null);
}
}
}