|
@@ -3,19 +3,15 @@ package com.qmth.sop.common.util;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
|
import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
|
-import net.lingala.zip4j.ZipFile;
|
|
|
+import net.lingala.zip4j.core.ZipFile;
|
|
|
import net.lingala.zip4j.exception.ZipException;
|
|
|
import net.lingala.zip4j.model.ZipParameters;
|
|
|
-import net.lingala.zip4j.model.enums.AesKeyStrength;
|
|
|
-import net.lingala.zip4j.model.enums.CompressionLevel;
|
|
|
-import net.lingala.zip4j.model.enums.CompressionMethod;
|
|
|
-import net.lingala.zip4j.model.enums.EncryptionMethod;
|
|
|
+import net.lingala.zip4j.util.Zip4jConstants;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.File;
|
|
|
-import java.nio.charset.Charset;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
@@ -140,8 +136,8 @@ public class Zip4jUtil {
|
|
|
file.getParentFile().mkdirs();
|
|
|
}
|
|
|
ZipFile zipFile = new ZipFile(scrPath);
|
|
|
- if (Objects.nonNull(password)) {
|
|
|
- zipFile.setPassword(password.toCharArray());
|
|
|
+ if (Objects.nonNull(password) && zipFile.isEncrypted()) {
|
|
|
+ zipFile.setPassword(password);
|
|
|
}
|
|
|
File currentFile = new File(destPath);
|
|
|
if (!currentFile.exists()) {
|
|
@@ -171,20 +167,17 @@ public class Zip4jUtil {
|
|
|
}
|
|
|
// 生成的压缩文件
|
|
|
ZipFile zipFile = new ZipFile(scrPath);
|
|
|
- zipFile.setCharset(Charset.forName("UTF-8"));
|
|
|
- if (Objects.nonNull(password)) {
|
|
|
- zipFile.setPassword(password.toCharArray());
|
|
|
- }
|
|
|
+ // zipFile.setFileNameCharset("UTF-8");
|
|
|
ZipParameters parameters = new ZipParameters();
|
|
|
// 压缩级别
|
|
|
- parameters.setCompressionMethod(CompressionMethod.DEFLATE);
|
|
|
+ parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
|
|
|
// 压缩级别
|
|
|
- parameters.setCompressionLevel(CompressionLevel.NORMAL);
|
|
|
+ parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
|
|
|
if (Objects.nonNull(password)) {
|
|
|
parameters.setEncryptFiles(true);
|
|
|
- parameters.setEncryptionMethod(EncryptionMethod.AES);
|
|
|
- parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
|
|
|
- // parameters.setPassword(password);
|
|
|
+ parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
|
|
|
+ parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
|
|
|
+ parameters.setPassword(password);
|
|
|
}
|
|
|
|
|
|
File[] fs = null;
|
|
@@ -202,7 +195,7 @@ public class Zip4jUtil {
|
|
|
// 遍历test文件夹下所有的文件、文件夹
|
|
|
for (File f : fs) {
|
|
|
if (f.isDirectory()) {
|
|
|
- zipFile.addFolder(new File(f.getPath()), parameters);
|
|
|
+ zipFile.addFolder(f.getPath(), parameters);
|
|
|
} else {
|
|
|
zipFile.addFile(f, parameters);
|
|
|
}
|