概述
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.EncryptionMethod;
import java.io.File;
import java.util.List;
import java.util.Objects;
/**
* 文件打包工具类
*
* @author zlx
* @date 2021/09/13 11:34
**/
public class ZipUtils2 {
/**
* 打包指定的文件
*
* @param file 待打包的文件
* @param zipFilePath 存储压缩包的路径,包含文件名
* @author zlx
* @date 2021/09/13 11:35
*/
public static void packageZip(File file, String zipFilePath) throws Exception {
validationIsNull(file, zipFilePath);
new ZipFile(zipFilePath).addFile(file);
}
/**
* 打包指定的文件
*
* @param file 待打包的文件
* @param zipFilePath 存储压缩包的路径,包含文件名
* @param password 压缩包密码
* @author zlx
* @date 2021/09/13 11:36
*/
public static void packageZip(File file, String zipFilePath, String password) throws Exception {
validationIsNull(file, zipFilePath, password);
ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
zipFile.addFile(file, getZipParameters());
}
/**
* 对指定的一些文件进行打包
*
* @param fileList 待打包的文件 list(不接收目录)
* @param zipFilePath 存储压缩包的路径,包含文件名
* @author zlx
* @date 2021/09/13 11:37
*/
public static void packageZip(List<File> fileList, String zipFilePath) throws Exception {
validationIsNull(fileList, zipFilePath);
new ZipFile(zipFilePath).addFiles(fileList);
}
/**
* 对指定的一些文件进行打包
*
* @param fileList 待打包的文件 list
* @param zipFilePath 存储压缩包的路径,包含文件名
* @param password 压缩包密码
* @author zlx
* @date 2021/09/13 11:37
*/
public static void packageZip(List<File> fileList, String zipFilePath, String password) throws Exception {
validationIsNull(fileList, zipFilePath, password);
ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
zipFile.addFiles(fileList, getZipParameters());
}
/**
* 打包指定的目录
*
* @param catalogPath 待打包的目录
* @param zipFilePath 存储压缩包的路径,包含文件名
* @author zlx
* @date 2021/09/13 11:38
*/
public static void packageZip(String catalogPath, String zipFilePath) throws Exception {
validationIsNull(catalogPath, zipFilePath);
new ZipFile(zipFilePath).addFolder(new File(catalogPath));
}
/**
* 打包指定的目录
*
* @param catalogPath 待打包的目录
* @param zipFilePath 存储压缩包的路径,包含文件名
* @param password 压缩包密码
* @author zlx
* @date 2021/09/13 11:38
*/
public static void packageZip(String catalogPath, String zipFilePath, String password) throws Exception {
validationIsNull(catalogPath, zipFilePath, password);
ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
zipFile.addFolder(new File(catalogPath), getZipParameters());
}
/**
* 解压压缩包
*
* @param zipFilePath 待解压的压缩包绝对路径
* @param unzipCatalog 解压后的目录
* @author zlx
* @date 2021/09/13 11:39
*/
public static void unzipAll(String zipFilePath, String unzipCatalog) throws Exception {
validationIsNull(zipFilePath, unzipCatalog);
new ZipFile(zipFilePath).extractAll(unzipCatalog);
}
/**
* 解压带密码的压缩包
*
* @param zipFilePath 待解压的压缩包绝对路径
* @param unzipCatalog 解压后的目录
* @param password 压缩包密码
* @author zlx
* @date 2021/09/13 11:39
*/
public static void unzipAll(String zipFilePath, String unzipCatalog, String password) throws Exception {
validationIsNull(zipFilePath, unzipCatalog);
new ZipFile(zipFilePath, password.toCharArray()).extractAll(unzipCatalog);
}
/**
* 解压指定的文件
*
* @param zipFilePath 待解压的压缩包绝对路径
* @param targetFilePath 目标文件相对目录,基于压缩包根目录
* @param unzipCatalog 解压后的目录
* @author zlx
* @date 2021/09/13 11:40
*/
public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog) throws Exception {
new ZipFile(zipFilePath).extractFile(targetFilePath, unzipCatalog);
}
/**
* 从设置了密码的压缩包中解压指定的文件
*
* @param zipFilePath 待解压的压缩包绝对路径
* @param targetFilePath 目标文件相对目录,基于压缩包根目录,
* @param unzipCatalog 解压后的目录
* @param password 压缩包密码
* @author zlx
* @date 2021/09/13 11:41
*/
public static void unzipTargetFile(String zipFilePath, String targetFilePath, String unzipCatalog, String password) throws Exception {
new ZipFile(zipFilePath, password.toCharArray()).extractFile(targetFilePath, unzipCatalog);
}
/**
* 校验参数是否为空
*
* @param objects 待校验的参数数组
* @author zlx
* @date 2021/09/13 11:43
*/
static void validationIsNull(Object... objects) throws NullPointerException {
for (Object object : objects) {
if (Objects.isNull(object)) {
throw new NullPointerException("param is null");
}
}
}
/**
* get ZipParameters
*
* @author zlx
* @date 2021/09/13 11:42
*/
static ZipParameters getZipParameters() {
ZipParameters zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
return zipParameters;
}
}
最后
以上就是精明黑夜为你收集整理的11.文件打包工具类(zip4j版)的全部内容,希望文章能够帮你解决11.文件打包工具类(zip4j版)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复