From 8cce08d1d96384edbd2d362173ffa98ca933ef13 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 28 十一月 2022 14:06:42 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/Zip4jHelper.java | 75 +++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/lf/server/helper/Zip4jHelper.java b/src/main/java/com/lf/server/helper/Zip4jHelper.java index 2cf0b41..57a6ebb 100644 --- a/src/main/java/com/lf/server/helper/Zip4jHelper.java +++ b/src/main/java/com/lf/server/helper/Zip4jHelper.java @@ -1,6 +1,5 @@ package com.lf.server.helper; -import com.google.common.base.Strings; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.model.ZipParameters; @@ -12,7 +11,7 @@ import org.apache.commons.logging.LogFactory; import java.io.File; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * Zip4j甯姪绫� @@ -24,15 +23,15 @@ /** * Zip鍘嬬缉 * - * @param zipFilePath zip鏂囦欢 - * @param sourcePath 婧愯矾寰� - * @param password 瀵嗙爜 + * @param zipFile zip鏂囦欢 + * @param sourcePath 婧愯矾寰� + * @param pwd 瀵嗙爜 * @return 鎴愬姛鏄惁 */ - public static boolean zip(String zipFilePath, String sourcePath, String password) { + public static boolean zip(String zipFile, String sourcePath, String pwd) { try { - ZipFile zip = new ZipFile(zipFilePath); - zip.setCharset(Charset.forName("UTF-8")); + ZipFile zip = StringHelper.isEmpty(pwd) ? new ZipFile(zipFile) : new ZipFile(zipFile, pwd.toCharArray()); + zip.setCharset(StandardCharsets.UTF_8); File f = zip.getFile(); if (!f.getParentFile().exists()) { @@ -42,22 +41,7 @@ f.delete(); } - // 璁剧疆鍘嬬缉鏂囦欢鍙傛暟 - ZipParameters params = new ZipParameters(); - // 鍘嬬缉鏂瑰紡 - params.setCompressionMethod(CompressionMethod.DEFLATE); - // 鍘嬬缉绾у埆 - params.setCompressionLevel(CompressionLevel.NORMAL); - // 鏄惁璁剧疆鍔犲瘑鏂囦欢 - params.setEncryptFiles(true); - // 璁剧疆AES鍔犲瘑寮哄害锛欿EY_STRENGTH_256 - params.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_128); - // 璁剧疆鍔犲瘑绠楁硶 - params.setEncryptionMethod(EncryptionMethod.AES); - // 璁剧疆瀵嗙爜 - if (!Strings.isNullOrEmpty(password)) { - zip.setPassword(password.toCharArray()); - } + ZipParameters params = getZipParams(); // 瑕佹墦鍖呯殑鏂囦欢鎴栨枃浠跺す File currentFile = new File(sourcePath); @@ -74,6 +58,49 @@ } } + /** + * 鍒涘缓ZipFile + */ + public static ZipFile createZipFile(String zipFile, String pwd) { + try { + ZipFile zip = StringHelper.isEmpty(pwd) ? new ZipFile(zipFile) : new ZipFile(zipFile, pwd.toCharArray()); + zip.setCharset(StandardCharsets.UTF_8); + + File f = zip.getFile(); + if (!f.getParentFile().exists()) { + f.getParentFile().mkdirs(); + } + if (f.exists()) { + f.delete(); + } + + return zip; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + return null; + } + } + + /** + * 鑾峰彇ZipParameters + */ + public static ZipParameters getZipParams() { + // 璁剧疆鍘嬬缉鏂囦欢鍙傛暟 + ZipParameters params = new ZipParameters(); + // 鍘嬬缉鏂瑰紡 + params.setCompressionMethod(CompressionMethod.DEFLATE); + // 鍘嬬缉绾у埆 + params.setCompressionLevel(CompressionLevel.MAXIMUM); + // 鏄惁璁剧疆鍔犲瘑鏂囦欢 + params.setEncryptFiles(true); + // 璁剧疆AES鍔犲瘑寮哄害锛欿EY_STRENGTH_256 + params.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_128); + // 璁剧疆鍔犲瘑绠楁硶 + params.setEncryptionMethod(EncryptionMethod.AES); + + return params; + } + private static void addZipFile(ZipFile zip, ZipParameters params, File file) throws ZipException { if (file.isDirectory()) { File[] files = file.listFiles(); -- Gitblit v1.9.3