我是靠谱客的博主 精明黑夜,最近开发中收集的这篇文章主要介绍11.文件打包工具类(zip4j版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.EncryptionMethod;

import java.io.File;
import java.util.List;
import java.util.Objects;

/**
 * 文件打包工具类
 *
 * @author zlx
 * @date 2021/09/13 11:34
 **/
public class ZipUtils2 {

    /**
     * 打包指定的文件
     *
     * @param file        待打包的文件
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @author zlx
     * @date 2021/09/13 11:35
     */
    public static void packageZip(File file, String zipFilePath) throws Exception {
        validationIsNull(file, zipFilePath);
        new ZipFile(zipFilePath).addFile(file);
    }

    /**
     * 打包指定的文件
     *
     * @param file        待打包的文件
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @param password    压缩包密码
     * @author zlx
     * @date 2021/09/13 11:36
     */
    public static void packageZip(File file, String zipFilePath, String password) throws Exception {
        validationIsNull(file, zipFilePath, password);
        ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
        zipFile.addFile(file, getZipParameters());
    }

    /**
     * 对指定的一些文件进行打包
     *
     * @param fileList    待打包的文件 list(不接收目录)
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @author zlx
     * @date 2021/09/13 11:37
     */
    public static void packageZip(List<File> fileList, String zipFilePath) throws Exception {
        validationIsNull(fileList, zipFilePath);
        new ZipFile(zipFilePath).addFiles(fileList);
    }

    /**
     * 对指定的一些文件进行打包
     *
     * @param fileList    待打包的文件 list
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @param password    压缩包密码
     * @author zlx
     * @date 2021/09/13 11:37
     */
    public static void packageZip(List<File> fileList, String zipFilePath, String password) throws Exception {
        validationIsNull(fileList, zipFilePath, password);
        ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
        zipFile.addFiles(fileList, getZipParameters());
    }

    /**
     * 打包指定的目录
     *
     * @param catalogPath 待打包的目录
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @author zlx
     * @date 2021/09/13 11:38
     */
    public static void packageZip(String catalogPath, String zipFilePath) throws Exception {
        validationIsNull(catalogPath, zipFilePath);
        new ZipFile(zipFilePath).addFolder(new File(catalogPath));
    }

    /**
     * 打包指定的目录
     *
     * @param catalogPath 待打包的目录
     * @param zipFilePath 存储压缩包的路径,包含文件名
     * @param password    压缩包密码
     * @author zlx
     * @date 2021/09/13 11:38
     */
    public static void packageZip(String catalogPath, String zipFilePath, String password) throws Exception {
        validationIsNull(catalogPath, zipFilePath, password);
        ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
        zipFile.addFolder(new File(catalogPath), getZipParameters());
    }

    /**
     * 解压压缩包
     *
     * @param zipFilePath  待解压的压缩包绝对路径
     * @param unzipCatalog 解压后的目录
     * @author zlx
     * @date 2021/09/13 11:39
     */
    public static void unzipAll(String zipFilePath, String unzipCatalog) throws Exception {
        validationIsNull(zipFilePath, unzipCatalog);
        new ZipFile(zipFilePath).extractAll(unzipCatalog);
    }

    /**
     * 解压带密码的压缩包
     *
     * @param zipFilePath  待解压的压缩包绝对路径
     * @param unzipCatalog 解压后的目录
     * @param password     压缩包密码
     * @author zlx
     * @date 2021/09/13 11:39
     */
    public static void unzipAll(String zipFilePath, String unzipCatalog, String password) throws Exception {
        validationIsNull(zipFilePath, unzipCatalog);
        new ZipFile(zipFilePath, password.toCharArray()).extractAll(unzipCatalog);
    }

    /**
     * 解压指定的文件
     *
     * @param zipFilePath    待解压的压缩包绝对路径
     * @param targetFilePath 目标文件相对目录,基于压缩包根目录
     * @param unzipCatalog   解压后的目录
     * @author zlx
     * @date 2021/09/13 11:40
     */
    public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog) throws Exception {
        new ZipFile(zipFilePath).extractFile(targetFilePath, unzipCatalog);
    }

    /**
     * 从设置了密码的压缩包中解压指定的文件
     *
     * @param zipFilePath    待解压的压缩包绝对路径
     * @param targetFilePath 目标文件相对目录,基于压缩包根目录,
     * @param unzipCatalog   解压后的目录
     * @param password       压缩包密码
     * @author zlx
     * @date 2021/09/13 11:41
     */
    public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog, String password) throws Exception {
        new ZipFile(zipFilePath, password.toCharArray()).extractFile(targetFilePath, unzipCatalog);
    }

    /**
     * 校验参数是否为空
     *
     * @param objects 待校验的参数数组
     * @author zlx
     * @date 2021/09/13 11:43
     */
    static void validationIsNull(Object... objects) throws NullPointerException {
        for (Object object : objects) {
            if (Objects.isNull(object)) {
                throw new NullPointerException("param is null");
            }
        }
    }

    /**
     * get ZipParameters
     *
     * @author zlx
     * @date 2021/09/13 11:42
     */
    static ZipParameters getZipParameters() {
        ZipParameters zipParameters = new ZipParameters();
        zipParameters.setEncryptFiles(true);
        zipParameters.setEncryptionMethod(EncryptionMethod.AES);
        zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
        return zipParameters;
    }

}

最后

以上就是精明黑夜为你收集整理的11.文件打包工具类(zip4j版)的全部内容,希望文章能够帮你解决11.文件打包工具类(zip4j版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部