1. 程式人生 > >Zip4J最簡單用法

Zip4J最簡單用法

初始化 array exce tao cat spa directory 檢驗 files

package com.chentao.MicroMessage.bussiness;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;

public class FileHandler {
    //需要壓縮的文件的目錄
public void zipDemo(String folderPath){ File file = new File(folderPath); //壓縮文件的完整的路徑名,註意如果zip文件的母文件夾不存在,那麽創建zip文件的時候會拋出系統找不到指定路徑的異常,所以,最好檢驗一下父路徑是否存在。 String zipPath = "D:\\tmp\\test.zip"; ArrayList<File> temp = new ArrayList<File>();
if(file.isDirectory()){ File [] files = file.listFiles(); Collections.addAll(temp, files); }else{ Collections.addAll(temp, file); } //設定壓縮文件的參數:初始化即可,如果不涉及則默認 ZipParameters zipParameters = new ZipParameters();
try { //創建zipFile,註意如果該zipfile已經存在,那麽再往裏執行虛擬機貌似會卡死,所以最好在這之前做一下校驗或者命名唯一確保不存在同名zip文件。 ZipFile zipFile = new ZipFile(zipPath); zipFile.addFiles(temp, zipParameters); } catch (ZipException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param path 需要打包的文件或者路徑 * @return String 是生成的zip文件的全路徑 */ public static String zip(String path){ String seperator = "\\"; File file = new File(path); String zipFilePath = null; ArrayList<File> fileList = new ArrayList<File>(); if(file.isDirectory()){ zipFilePath = path+seperator+file.getName()+".zip"; File [] fileArray = file.listFiles(); Collections.addAll(fileList, fileArray); }else{ zipFilePath = file.getParent()+seperator+file.getName()+".zip"; Collections.addAll(fileList, file); } try { ZipFile zipFile = new ZipFile(zipFilePath); ZipParameters zipParameters = new ZipParameters(); zipFile.addFiles(fileList, zipParameters); } catch (ZipException e) { // TODO Auto-generated catch block e.printStackTrace(); } return zipFilePath; } }

最簡單用法為zipDemo方法,zip()方法對參數進行了處理。

Zip4J最簡單用法