package com.lxzn.zip4j; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.File; import java.util.ArrayList; @RunWith(SpringRunner.class) @SpringBootTest public class Zip4jTest { private static final String ZIP_FILE_PATH = "C://TEMP"; private static final String BASE_FILE_PATH = "c://lxzn_storage"; /** * 压缩文件 */ @Test public void testAddFile() throws Exception { String zipFileName = "test.zip"; String zf = ZIP_FILE_PATH + "/" + zipFileName; ZipFile zipFile = new ZipFile(zf); File baseFile = new File(BASE_FILE_PATH); ArrayList addFiles = new ArrayList<>(); if(baseFile.isDirectory()) { addFiles = getAllFiles(addFiles, baseFile); }else { addFiles.add(baseFile); } ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // 目标路径 parameters.setRootFolderInZip("ks/"); zipFile.addFiles(addFiles, parameters); } /** * 获取当前目录下所有的文件列表 不包含目录结构 * @param file * @return */ private static ArrayList getAllFiles(ArrayList fileArr, File file) { File[] fs = file.listFiles(); for(File f : fs) { if(f.isDirectory()) { fileArr =getAllFiles(fileArr, f); }else { fileArr.add(f); } } return fileArr; } }