10元建站中国免费广告网

张小明 2026/1/12 13:41:00
10元建站,中国免费广告网,seo的优缺点,久久建工集团java使用net.lingala.zip4j导出压缩包文件一、先确认依赖#xff08;Maven/Gradle#xff09;二、完整实现代码三、zip4j 1.x 核心配置说明#xff08;区别于2.x#xff09;四、关键问题解决1. AES-256 加密权限问题#xff08;JDK8及以下#xff09;2. 中文文件名乱码3.…java使用net.lingala.zip4j导出压缩包文件一、先确认依赖Maven/Gradle二、完整实现代码三、zip4j 1.x 核心配置说明区别于2.x四、关键问题解决1. AES-256 加密权限问题JDK8及以下2. 中文文件名乱码3. 文件夹删除失败4. 压缩包覆盖问题五、使用注意以下是基于 zip4j 1.x 版本实现「加密压缩指定文件夹 压缩后删除原文件夹」的完整代码兼容旧版依赖同时解决加密、中文乱码、文件夹删除等核心问题一、先确认依赖Maven/Gradlezip4j 1.x 最新稳定版为1.3.2需在pom.xml中引入!-- zip4j 1.x 依赖对应 core.ZipFile --dependencygroupIdnet.lingala.zip4j/groupIdartifactIdzip4j/artifactIdversion1.3.2/version/dependency二、完整实现代码importnet.lingala.zip4j.core.ZipFile;importnet.lingala.zip4j.exception.ZipException;importnet.lingala.zip4j.model.ZipParameters;importnet.lingala.zip4j.util.Zip4jConstants;importjava.io.File;importjava.util.Arrays;/** * 基于 zip4j 1.xcore.ZipFile实现加密压缩文件夹并删除原文件夹 */publicclassZipEncryptUtil1x{/** * 加密压缩指定文件夹 * param sourceDirPath 待压缩文件夹路径如 D:\test\source * param zipFilePath 压缩包保存路径如 D:\test\source_encrypt.zip * param password 压缩包加密密码 * throws ZipException 压缩相关异常 */publicstaticvoidencryptCompressDir(StringsourceDirPath,StringzipFilePath,Stringpassword)throwsZipException{// 1. 校验源文件夹合法性FilesourceDirnewFile(sourceDirPath);if(!sourceDir.exists()||!sourceDir.isDirectory()){thrownewIllegalArgumentException(源文件夹不存在或非合法目录sourceDirPath);}// 2. 初始化压缩参数加密压缩配置ZipParameterszipParamsnewZipParameters();// 压缩算法DEFLATE平衡压缩率和速度STORE 为无压缩仅打包zipParams.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别0(最快)~9(最高压缩率)5为默认平衡值zipParams.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 开启加密zipParams.setEncryptFiles(true);// 加密方式AES-256推荐比ZIP2.0更安全zipParams.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);// AES密钥强度256位需JDK支持无限制加密策略zipParams.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);// 设置压缩包密码zipParams.setPassword(password.toCharArray());// 解决中文文件名乱码1.x 版本需手动指定字符集zipParams.setFileNameCharset(UTF-8);// 3. 创建压缩包并添加整个文件夹保留目录结构ZipFilezipFilenewZipFile(zipFilePath);// 添加文件夹到压缩包自动递归包含所有子文件/子目录zipFile.addFolder(sourceDir,zipParams);System.out.println(加密压缩完成压缩包路径zipFilePath);// 4. 压缩完成后删除原文件夹递归删除booleandeleteSuccessdeleteDirectory(sourceDir);if(deleteSuccess){System.out.println(原文件夹已删除sourceDirPath);}else{System.err.println(原文件夹删除失败可能文件被占用sourceDirPath);}}/** * 递归删除文件夹包含所有子文件/子目录 * param dir 待删除的文件夹 * return 是否删除成功 */privatestaticbooleandeleteDirectory(Filedir){if(dir.isDirectory()){File[]childrendir.listFiles();// 空文件夹直接删除if(childrennull||children.length0){returndir.delete();}// 递归删除所有子文件/子目录for(Filechild:children){booleansuccesschild.isDirectory()?deleteDirectory(child):child.delete();if(!success){returnfalse;}}}// 最后删除空文件夹returndir.delete();}// 测试示例publicstaticvoidmain(String[]args){try{// 待压缩文件夹路径StringsourceDirD:\\test\\myFolder;// 加密压缩包保存路径StringzipFileD:\\test\\myFolder_encrypt.zip;// 压缩包密码建议包含大小写数字特殊字符StringpasswordZip4j123456;// 执行加密压缩删除原文件夹encryptCompressDir(sourceDir,zipFile,password);}catch(Exceptione){e.printStackTrace();System.err.println(操作失败e.getMessage());}}}三、zip4j 1.x 核心配置说明区别于2.x配置项1.x 常量值说明压缩算法COMP_DEFLATE/COMP_STOREDEFLATE有压缩、STORE无压缩压缩级别DEFLATE_LEVEL_0~DEFLATE_LEVEL_90最快9压缩率最高NORMAL5默认加密方式ENC_METHOD_AES/ENC_METHOD_STANDARDAES安全、ZIP2.0弱加密不推荐AES密钥强度AES_STRENGTH_128/256256位需JDK解锁无限制加密策略JDK8及以下需替换JCE文件四、关键问题解决1. AES-256 加密权限问题JDK8及以下若运行时报ZipException: Invalid AES Key Strength需替换 JDK 加密策略文件下载「JCE 无限制强度管辖权策略文件」Oracle 官网替换路径JDK_HOME/jre/lib/security下的local_policy.jar和US_export_policy.jarJDK9 已默认支持无需替换。2. 中文文件名乱码1.x 版本需手动设置字符集zipParams.setFileNameCharset(UTF-8)否则压缩包内中文文件名会变成乱码。3. 文件夹删除失败原因文件夹内文件被其他程序占用、权限不足解决// 删除前增加权限设置重试逻辑privatestaticbooleandeleteDirectory(Filedir){if(dir.isDirectory()){File[]childrendir.listFiles();if(children!null){for(Filechild:children){// 赋予文件可写权限child.setWritable(true);booleansuccessdeleteDirectory(child);if(!success){// 重试删除休眠500mstry{Thread.sleep(500);successchild.delete();}catch(InterruptedExceptione){Thread.currentThread().interrupt();}if(!success)returnfalse;}}}}dir.setWritable(true);returndir.delete();}4. 压缩包覆盖问题若目标压缩包已存在1.x 版本会默认追加文件如需覆盖需先删除已有压缩包FileexistingZipnewFile(zipFilePath);if(existingZip.exists()){if(!existingZip.delete()){thrownewZipException(已有压缩包无法删除无法覆盖zipFilePath);}}// 再创建新压缩包ZipFilezipFilenewZipFile(zipFilePath);五、使用注意压缩包密码建议设置复杂密码大小写数字特殊字符避免被暴力破解生产环境中建议增加「压缩成功校验」检查压缩包大小、完整性再删除原文件夹若需压缩指定类型文件如仅压缩.txt可通过FileFilter过滤// 仅添加txt文件zipFile.addFolder(sourceDir,zipParams,file-file.getName().endsWith(.txt));该代码基于 zip4j 1.x 版本core.ZipFile实现兼容旧项目依赖可直接集成使用核心逻辑清晰同时处理了加密、乱码、删除失败等常见问题。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wordpress产品网站做网站在线

D2Admin企业级无障碍实战:从零构建WCAG标准后台系统 【免费下载链接】d2-admin 项目地址: https://gitcode.com/gh_mirrors/d2a/d2-admin 在数字化浪潮中,构建具有包容性的企业级应用已成为技术团队的必备技能。D2Admin作为一款成熟的后台管理系…

张小明 2026/1/5 6:26:41 网站建设

建设银行 商户网站打不开seo全网优化推广

虚拟机中多种操作系统的使用与安装指南 1. Solaris 系统启动与设备相关信息 1.1 Solaris 启动过程 Solaris Intel 平台版通过两步过程启动。首先从 DOS 分区加载一个(DOS)配置助手。若以交互模式进入该助手(首次安装时会这样),可以从其他设备启动并探测新添加的硬件,也…

张小明 2026/1/4 6:39:53 网站建设

珠海建设网站公司哪家好网站架构 规划

目录 已开发项目效果实现截图开发技术 核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 已开发项目效果…

张小明 2026/1/4 6:39:51 网站建设

成都个人团队网站开发陕西陕煤建设集团有限公司网站

EmotiVoice助力乡村振兴:方言播报农业信息 在云南红河的清晨,村口广播响起:“明天要降温咯,大家快把辣椒苗盖好!”——声音熟悉得像是隔壁李支书在喊话。可实际上,这是一段由AI生成的彝汉双语语音&#xff…

张小明 2026/1/4 6:39:49 网站建设

有做网站运营的吗2008 iis wordpress

Rust 类型转换语法大全 Rust 提供了多种类型转换机制,以下是详细的分类和语法: 1. 隐式转换 (类型强制转换, Coercions) Rust 只在特定情况下进行隐式类型转换: // 解引用强制多态 (Deref Coercion) let s: &str &String::from(&quo…

张小明 2026/1/3 21:04:34 网站建设

马云1688网站在濮阳如何做揭阳网站设计公司

1. 集合与映射主要内容集合的基本概念:集合的定义、表示方法(列举法、描述法)、子集、交集、并集、补集等运算。映射(函数)的定义:映射的概念、单射、满射、双射,映射的复合与逆映射。集合的基数…

张小明 2026/1/9 11:22:14 网站建设