admin管理员组

文章数量:1639679

Java 多文件加密压缩

添加文件加密压缩工具包依赖

<!-- zip4j压缩工具  -->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>1.3.2</version>
        </dependency>

话不多说,直接上干货

完整代码如下:

 package com.rhtcms.cms.api.admin.main;

import org.json.JSONObject;
import org.springframework.stereotype.Controller;

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

import java.io.*;
import java.util.*;

public class FileCompressionApiAct {
   
    /**
     * 复制压缩文件路径  ps:此路径必须为空文件夹,在压缩完成后此文件夹将被清空目录
     */
    private static String copyPath = "c:/Users/Administrator/Desktop/压缩测试/压缩测试作业复制";

    private static long time = System.currentTimeMillis();//以时间戳作为文件名,防止重命名问题

    /**
     * 压缩包路径: 路径+压缩包名称    eg: C:/Users/Administrator/Desktop/压缩测试/  +  test.zip
     */
    private static String zipPath = "C:/Users/Administrator/Desktop/压缩测试/" + time + ".zip";

    /**
     * 可支持的压缩文件格式
     */
    private static String[] fileType = {
   "doc", "docx", "pdf", "txt"};

    /**
     * @param filePath   压缩文件路径
     * @param fileRename 压缩文件重命名名称
     * @param password   加密密码
     * @return
     * @Title: zipFilesAndEncrypt
     * @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
     * @Author: 张庆裕
     * @Date: 2021/01/04
     */
    //@RequestMapping("/fileCompression/list")
    public String zipFilesAndEncrypt(List<File> filePath, List<String> fileRename, String password) {
   
        /**
         * 压缩成功的文件数量
         */
        int successCount = 0;
        /**
         * 压缩失败的文件数量
         */
        int failCount = 0;
        /**
         * 返回数据
         */
        JSONObject ob = new JSONObject();

        ArrayList<String> failFile = new ArrayList<>();//压缩失败的文件路径

        ArrayList<String> failFilePath = new ArrayList<>();//路径错误的文件

        ArrayList<File> filesToAdd = new ArrayList<>();//压缩路径的集合

        //创建复制文件夹
        File folder = new

本文标签: 压缩文件文件压缩对象Java