使用zip4j作为解压缩工具
public static List<String> unZip(String filePath ,String fileName) {
ZipFile zipFile;
List<String> outFiles = null;
try {
File file = new File(filePath+File.separator + fileName);
if(!file.exists() || !file.isFile()) return null;
logger.info("--------------解压文件开始-------------");
logger.info("解压关键字【"+filePath+"】【"+fileName+"】");
outFiles = new ArrayList<String>();
zipFile = new ZipFile(filePath + File.separator + fileName);
zipFile.setFileNameCharset("GBK");//根据具体文件属性
outFiles = new ArrayList<String>();
List<FileHeader> fileHeaderList = zipFile.getFileHeaders();//压缩包内文件列表
String[] folder = fileName.split("\\.");//用以将压缩文件加压到同名的文件夹内
for (FileHeader fi :fileHeaderList) {
outFiles.add(filePath+File.separator+folder[0]+File.separator+fi.getFileName());
}
zipFile.extractAll(filePath+File.separator+folder[0]);
logger.info("解压文件完成,共解压出文件【"+outFiles.size()+"】个");
} catch (ZipException e) {
e.printStackTrace();
logger.error("解压文件失败");
}
return outFiles;
}
使用到的Maven工具
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.2</version>
</dependency>