lyh
9 小时以前 78aeb8a8c97a884a640d46755e4be706bde48b7d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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;
 
    }
}