1:引入zip4j_1.3.2.jarjava
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; } }