JAVA 压缩加密工具类
该类可对传入的文件进行压缩并加密处理
导包
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
import java.io.File;
类
public class RARUtil {
/**
* @Description:将指定路径下的文件压缩至指定文件(zip/rar),并以指定密码加密,若密码为空,则不进行加密保护
* @param dst_file 压缩文件路径+文件名
* @param encode 文件解压密码
* @param src_files 需要压缩的文件路径
* @return
*/
public static void encrypt_zip(String dst_file, String encode,String... src_files) {
CopyFile copyFile = new CopyFile();
copyFile.deleteFile(dst_file);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);//压缩方式
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 压缩级别
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);//加密方式
parameters.setPassword(encode.toCharArray());//设置密码
try {
ZipFile zipFile = new ZipFile(dst_file);
zipFile.setFileNameCharset("gbk");
for(String src_file:src_files) {
File file = new File(src_file);
zipFile.addFile(file, parameters);
}
} catch (ZipException e) {
e.printStackTrace();
}
}
}