首页 > 其他分享 >把文件压缩成zip包并设置密码

把文件压缩成zip包并设置密码

时间:2024-05-23 16:52:15浏览次数:29  
标签:folderPath zip String parameters 压缩成 fileName 包并 zip4j

引入依赖

 <!-- zip -->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>1.3.2</version>
        </dependency>

  代码

package org.example;

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

public class CustomExport {
    private static String zipFilePassword = "1234568";

    public static void main(String[] args) throws ZipException {
        String zipPath="C:\\Users\\50649\\Desktop\\test";
        String fileName="666.xlsx";
        String fold="C:\\Users\\50649\\Desktop\\test\\666.xlsx";
        File folderPath = new File(fold);
        zipFile(zipPath,fileName, folderPath);
    }

    /**
     * @param zipPath
     * 				创建zip文件的 文件路径+zip名称
     * @param folderPath
     * 				待压缩文件夹或者待压缩文件
     */
    private static String zipFile(String zipPath,String fileName, File folderPath) throws ZipException {

        // 切割.后缀名 不然文件下载后缀名为xlszip 虽然也是zip文件,但会让人感觉很奇怪
        // java中的.需要转义 \\. 才是.
        String []fastFileName = null;
        if (null != fileName) {
            fastFileName = fileName.split("\\.");
        }
        fileName = fastFileName[0];

        ZipFile zipFile = new ZipFile(zipPath+"\\"+fileName+".zip");
        ZipParameters parameters = new ZipParameters(); // 设置zip包的一些参数集合
        parameters.setEncryptFiles(true); // 是否设置密码(此处设置为:是)
        parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // 压缩方式(默认值)
        parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 普通级别(参数很多)
        parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD); // 加密级别
        parameters.setPassword(zipFilePassword); // 压缩包密码
        if (folderPath.isDirectory()) {
            zipFile.createZipFileFromFolder(folderPath, parameters, false, -1L);
        } else {
            zipFile.createZipFile(folderPath, parameters);
        }

        return zipFile.getFile().getName();
    }

    /**
     * 压缩完成后删除excel文件
     */
    private static boolean deleteFile(String sPath) {
        boolean flag = false;
        File file = new File(sPath);
        // 路径为文件且不为空则进行删除
        if (file.isFile() && file.exists()) {
            file.delete();
            flag = true;
        }

        return flag;
    }
}

  

标签:folderPath,zip,String,parameters,压缩成,fileName,包并,zip4j
From: https://www.cnblogs.com/xianz666/p/18208919

相关文章

  • Win11 24H2已在路上!微软发布最新RP预览版:支持创建7-zip文件、Wi-Fi 7等
    微软正紧锣密鼓地准备Windows11的下一个重大更新,即24H2版本。在正式发布前夕,微软向ReleasePreview的WindowsInsider项目成员发布了Windows11Version24H2(Build26100.712)预览版更新,邀请用户参与测试并反馈问题。这一预览版带来了一系列新功能和改进,其中包括对Wi-Fi7的支持......
  • 9-3-了解gzip-bzip2- xz管理压缩文件
    9.3了解gzip-bzip2-xz管理压缩文件-file-sort查看文件创建压缩的TAR存档,TAR命令支持三种不同的压缩方式:gzip压缩速度最快bzip2压缩生成的文件比gzip小,但使用不如gzip广;xz压缩工具相对较新,但是会提供最佳的压缩率9.3.1压缩工具......
  • zip在不同浏览器的文件类型不一样
    前端上传zip文件,不同浏览器解析的文件类型不一样今日份,遇到一个坑,发现同样是谷歌浏览器,但是上传zip文件的解析文件类型却跟其他电脑的不一样,纳闷了。经调试,发现zip文件firefox:application/octet-streamchrome:application/octet-streamoprea:application/zipIE:app......
  • 9-2-zip管理压缩文件
    9.2zip管理压缩文件命令:zip压缩后的名称.zip压缩前的文件路径 例1:压缩某一路径下所有的图片 解压所有的图片的zip压缩包,到当前目录,命令:unzip文件名.zip  解压所有的图片的zip压缩包,到指定目录,......
  • Python中解压一个包含中文文件名的ZIP文件到指定的目录
    要在Python中解压一个包含中文文件名的ZIP文件到指定的目录,你可以指定解压文件时所需的字符编码。下面是一个示例代码:importzipfileimportoszip_file_path='/path/to/your/chinese_file.zip'extract_dir='/path/to/extract/directory'#创建一个解压目标目录os.make......
  • 源服务器开启gzip,CDN上没开启,CDN节点请求是以gzip大小算还是按原来的大小算
    今天学到一个知识:当源服务器开启了gzip压缩,而CDN上没有开启gzip时,CDN节点请求的流量计算通常是基于未压缩的原始文件大小来计算的。这是因为CDN通常是根据其接收到的内容来计算流量,而不会主动去解压缩已压缩的内容来计算。具体来说,当CDN节点从源服务器获取内容时,如果源服务器返......
  • java下载zip文件
    一、使用工具*java.utils下的ZipOutputStream*java.net的http请求工具HttpURLConnection二、zip下载1.通过浏览器以附件的形式下载到客户端思路:response的write方法要写出一个byte[],所以我们需要从ZipStreamOutputStream中获取到byte[]。在java中......
  • Docker Desktop部署微软微服务Dapr(Redis+Zipkin+Placement)
    DockerDesktop部署微软微服务Dapr(Redis+Zipkin+Placement)说明系统:Windows11专业版23H2Docker:DockerDesktopv4.29.0+本文为开发环境学习和测试使用安装DaprCLI使用MSI安装程序安装每个DaprCLI的发布版本还包括一个适用于Windows的安装程序。您可以手动下......
  • 部署jar包并设置桌面启动器
    来自:https://blog.csdn.net/qq_41841482/article/details/136707345前言服务器安装的是Ubuntu系统(Ubuntu是linux的一个发行版本),然后将一个java程序部署在服务器中。因为现场使用人员不熟悉linux系统,不会使用命令行启动程序,故需要制作一个类似windows中bat文件,让用户直接双击就能......
  • zip伪加密
    目录1.前文:2.原理:1.压缩源文件数据区:2.压缩源文件目录区:3.压缩源文件目录结束标志:3.判断是否加密:1.无加密:2.伪加密:3.真加密:4.修改方法:5.其他途径:6.反例:(1)用binwalk-e......