当前位置: 首页 > news >正文

文件压缩与解压(zip4j)

maven依赖

    <dependency>
        <groupId>net.lingala.zip4j</groupId>
        <artifactId>zip4j</artifactId>
        <version>2.11.5</version>
    </dependency>

示例

        //参数配置
        ZipParameters parameters = new ZipParameters();
        parameters.setCompressionMethod(CompressionMethod.DEFLATE);// 压缩方式
        parameters.setCompressionLevel(CompressionLevel.ULTRA);// 压缩级别
        parameters.setEncryptFiles(true);//文件是否加密
        parameters.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD);//加密方法
        //创建或加载压缩包并向其加文件
        ZipFile zipFile = new ZipFile("F:\\demo\\zip\\" + System.currentTimeMillis() + ".zip", "123456".toCharArray());
        zipFile.addFolder(new File("F:\\demo\\text"), parameters);//添加目录
        zipFile.addFile(new File("F:\\demo\\1.docx"), parameters);//添加文件
        //解压到指定目录
        zipFile.extractAll("F:\\demo\\zip\\dest2");
        zipFile.close();//关闭

ZipParameters 相关API

setCompressionMethod(compressionMethod)                 配置压缩方式
setEncryptFiles(encryptFiles)                           配置文件是否加密
setEncryptionMethod(encryptionMethod)                   配置加密方法
setCompressionLevel(compressionLevel)                   配置压缩级别
setReadHiddenFiles(readHiddenFiles)                配置是否允许读取隐藏文件
setReadHiddenFolders(readHiddenFolders)            配置是否允许读取隐藏文件夹
setAesKeyStrength(aesKeyStrength)                  配置Aes密钥强度
setAesVersion(aesVersion)                          配置Aes版本
setIncludeRootFolder(includeRootFolder)            配置是否包含根文件夹
setEntryCRC(entryCRC)                              配置CRC条目
setDefaultFolderPath(defaultFolderPath)            配置默认文件夹路径
setFileNameInZip(fileNameInZip)                    配置zip包中文件名
setLastModifiedFileTime(lastModifiedFileTime)      配置文件最后修改时间
setEntrySize(long entrySize)                       配置条目数
setWriteExtendedLocalFileHeader(writeExtendedLocalFileHeader)  配置是否写入扩展本地文件头
setOverrideExistingFilesInZip(overrideExistingFilesInZip)   配置是否覆盖已有文件
setRootFolderNameInZip(rootFolderNameInZip)        配置根文件夹名称
setFileComment(fileComment)                        配置文件评论
setSymbolicLinkAction(symbolicLinkAction)          配置链接处理动作
setExcludeFileFilter(excludeFileFilter)            配置排除文件过滤器
setUnixMode(unixMode)                              配置是否unix模式

ZipFile 相关API

createSplitZipFile(files, parameters, splitArchive,splitLength)                分片创建zip文件
createSplitZipFileFromFolder(folder,  parameters, splitArchive, splitLength)   分片创建zip文件
addFile(String fileToAdd, ZipParameters zipParameters)                         zip包里添加文件
addFile(File fileToAdd, ZipParameters parameters)                              zip包里添加文件
addFiles(List<File> filesToAdd, ZipParameters parameters)                      zip包里批量添加文件
addFolder(File folderToAdd, ZipParameters zipParameters)                       zip包里添加目录及其包含文件
addStream(InputStream inputStream, ZipParameters parameters)                   通过文件流往zip包里添加文件
extractAll(String destinationPath, UnzipParameters unzipParameters)            解压zip文件到指定目录
extractFile(fileHeader, destinationPath)                                       提取zip包中指定文件
extractFile(fileHeader, destinationPath, unzipParameters)                      提取zip包中指定文件
extractFile(fileHeader, destinationPath, newFileName, unzipParameters)         提取zip包中指定文件
extractFile(fileName, destinationPath)                                          提取zip包中指定文件
extractFile(fileName, destinationPath, unzipParameters)                         提取zip包中指定文件
extractFile(fileName, destinationPath, newFileName)                             提取zip包中指定文件
extractFile(fileHeader, destinationPath, newFileName)                           提取zip包中指定文件
extractFile(fileName, destinationPath, newFileName, unzipParameters)            提取zip包中指定文件
getFileHeaders()                                                                查看zip包里所有文件、目录信息
getFileHeader(fileName)                                                         查看指定zip包里文件信息    
isEncrypted()                                                                   zip包是否加密
isSplitArchive()                                                                zip包是否分割档案
removeFile(FileHeader fileHeader)                                               移除zip包内指定文件
removeFile(String fileName)                                                     移除zip包内指定文件
removeFiles(List<String> fileNames)                                             移除zip包内指定文件
renameFile(FileHeader fileHeader, String newFileName)                           zip包内指定文件重命名
renameFile(String fileNameToRename, String newFileName)                         zip包内指定文件重命名
renameFiles(Map<String, String> fileNamesMap)                                   zip包内指定文件重命名
mergeSplitFiles(File outputZipFile)                                             合并分割档案
setComment( comment)                                                            设置评论
getComment()                                                                    获取评论
getInputStream(fileHeader)                                                       获取指定文件的文件流
isValidZipFile()                                                                是有效的Zip文件
getSplitZipFiles()                                                              获取分片文件
close()                                                                         关闭
setPassword(password)                                                           配置密码
getBufferSize()                                                                 获取缓冲区大小
setBufferSize(bufferSize)                                                       配置缓冲区大小
getProgressMonitor()                                                            获取进度监视器
isRunInThread()                                                                 是否正在运行的线程
setRunInThread(boolean runInThread)                                             配置是否在线程中执行
getFile()                                                                       获取zip压缩包File
getCharset()                                                                    获取编码集
setCharset(Charset charset)                                                     配置编码集
setThreadFactory(threadFactory)                                                 配置线程工厂
getExecutorService()                                                            获取执行服务
setUseUtf8CharsetForPasswords(useUtf8CharsetForPasswords)                       密码使用Utf8字符集

相关文章:

  • SnapdragonCamera骁龙相机源码解析
  • 【C++指南】一文总结C++二叉搜索树
  • 【Linux】传输层协议 TCP
  • Vue3实现锚点定位
  • 项目实战:基于Spring WebFlux与LangChain4j实现大语言模型流式输出
  • 服务停止后,自启动的service怎么写
  • QT/C++ 多线程并发下载实践
  • nx-admin1.2版本发布
  • 【教程】如何使用匿名Github仓库: anonymous.4open.science
  • 【蓝桥杯】单片机设计与开发,RTC实时时钟
  • 微信小程序使用 Vant Weapp 组件库教程
  • 迅为RK3568开发板helloworld 驱动实验-驱动编写
  • Python 自动化:节省时间,更智能地工作
  • Python小练习系列 Vol.12:学生信息排序(sorted + key函数)
  • 1.2 基于卷积神经网络与SE注意力的轴承故障诊断
  • Spring 面经
  • 生物化学笔记:医学免疫学原理11 免疫应答 + 固有免疫应答占位效应 + 适应性免疫应答 IgM和IgG抗体用于判断感染时期
  • 【C语言】深入理解指针(三):C语言中的高级指针应用
  • Linux centos 7 服务器组建与管理
  • 2025年 APP测试要点汇总!
  • 又是“9+2”复式票,浦东退休阿姨擒大乐透1153万头奖
  • 海口警方通报“司机驾车拖行虐猫”:系意外,未发现故意虐猫行为
  • “80后”湖南岳阳临湘市市长刘琦任临湘市委书记
  • 新华社原香港分社副社长、深圳市委原副书记秦文俊逝世
  • 安徽凤阳通报鼓楼瓦片脱落:2023年曾维修,已成立调查组
  • 谷神星一号海射型遥五运载火箭发射成功