import java.io.File;
import java.util.ArrayList;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
public class doZipUtil {
static String targetsrc = "C:/Users/Desktop/test.zip"; //生成压缩文件路径
static String filesrc = "C:/Users/Desktop/test.pdf"; //需要压缩的文件1
// String filesrc1 = "C:/Users/Desktop/test.doc"; //需要压缩的文件2
// String filesrc2 = "C:/Users/Desktop/test1.doc"; //需要压缩的文件3
static String folderToAdd = "C:/Users/Desktop/test"; //需要压缩的文件夹
static String password = "1234";
public static void filedozip() throws ZipException {
try {
ZipFile zipFile = new ZipFile(targetsrc);
ArrayList filesToAdd = new ArrayList();
//单个文件添加到压缩文件
filesToAdd.add(new File(filesrc));
/*多个文件添加到压缩文件
filesToAdd.add(new File(filesrc));
filesToAdd.add(new File(filesrc1));
filesToAdd.add(new File(filesrc2));
filesToAdd.add(new File(filesrc3));
filesToAdd.add(new File(filesrc4));
filesToAdd.add(new File(filesrc5));
*/
ZipParameters parameters = new ZipParameters();
//zip设置
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
parameters.setEncryptFiles(true);
//设置密码
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
zipFile.addFiles(filesToAdd, parameters);
System.out.println("zip success");
} catch (ZipException e) {
e.printStackTrace();
}
}
public static void folderdozip() throws ZipException {
try{
ZipFile zipFile = new ZipFile(targetsrc);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
/*
//设置密码
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
*/
zipFile.addFolder(folderToAdd, parameters);
System.out.println("zip success");
}catch (Exception e) {
e.printStackTrace();
}
}
}
1、filedozip()中filesToAdd能添加多个文件地址 实现对多个文件的压缩处理
folderdozip()则只需要在全局变量folderToAdd中设定好需要压缩的文件夹的路径就能对整个文件夹进行压缩处理
2、zip设置那里 只能用AES 用其他的会报错 不知道为什么