解壓zip包(zip4j)

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;
	    }
}
相關文章
相關標籤/搜索