1:引入zip4j_1.3.2.jar
2:源码如下:
package test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
public class UnZipUtil {
public static void main(String[] args) throws IOException {
String zipPath = "D:\\test\\APP2.4.zip";//文件的路径
String descDir = "D:\\test\\APP2.4";//需要解压到的路径
unZipFiles(new File(zipPath), descDir);
}
/**
* zip解压工具类
* @Description: TODO
* @param @param zipFile:文件的路径
* @param @param descDir:需要解压到的路径
* @param @throws IOException
* @return void
* @throws
* @author uug
* @date 2018年10月23日
*/
@SuppressWarnings("unchecked")
public static void unZipFiles(File zipFile,String descDir)throws IOException{
try {
ZipFile zFile = new ZipFile(zipFile);// 首先创建ZipFile指向磁盘上的.zip文件
zFile.setFileNameCharset("utf-8");
//判断目录是否存在,不存在的话要新建
File file = new File(descDir);
if(!file.exists() && !file.isDirectory()){
file.mkdir();
}
File descDirDir = new File(descDir);// 解压目录
/*if (zFile.isEncrypted()) {
zFile.setPassword(password.toCharArray());// 设置密码
}*/
zFile.extractAll(descDir);// 将文件抽出到解压目录(解压)
List<net.lingala.zip4j.model.FileHeader> headerList = zFile.getFileHeaders();
List<File> extractedFileList = new ArrayList<File>();
for(FileHeader fileHeader : headerList) {
if (!fileHeader.isDirectory()) {
extractedFileList.add(new File(descDirDir,fileHeader.getFileName()));
}
}
File [] extractedFiles = new File[extractedFileList.size()];
extractedFileList.toArray(extractedFiles);
for(File f:extractedFileList){
System.out.println(f.getAbsolutePath()+"....");
}
}catch(ZipException e){
System.out.println("解压失败:"+e.getMessage());
}
}
/**
* 删除zipPath目录下所有的zip文件
* @Description: TODO
* @param @param zipPath:zip文件的目录
* @param @return
* @return String
* @throws
* @author uug
* @date 2018年10月23日
*/
public static String delZipFile(String zipPath){
try{
File file=new File(zipPath);
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
if (f.getName().endsWith(".zip")) { // zip文件 判断 是否存在
if(f.delete()) {
//log.info("zip文件已经删除");
}else{
//log.info("zip文件删除失败");
}
}
}
}
}catch(Exception e){
System.out.println("删除zip解压包失败:"+e.getMessage());
}
return null;
}
}