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<File> 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<File> getAllFiles(ArrayList<File> fileArr, File file) {
|
File[] fs = file.listFiles();
|
for(File f : fs) {
|
if(f.isDirectory()) {
|
fileArr =getAllFiles(fileArr, f);
|
}else {
|
fileArr.add(f);
|
}
|
}
|
return fileArr;
|
|
}
|
}
|