0

我正在尝试使用 Zip4j 库压缩一堆文件。我传递了我要压缩的文件的文件路径列表,并将它们一一添加到 zip 文件中。由于某种原因,最后一个文件没有被添加。我检查了循环的索引,我很确定它们是正确的。我没有收到任何异常或错误消息。这是我的代码:

    // get the path; paths refers to the list of files to compress
    String uuidString = UUID.randomUUID().toString();
    String path = "H:/public/ZipFiles/" + uuidString + ".zip";

    try {
        // create the new zip file
        ZipFile zipFile = new ZipFile(path);
        File fileToAdd;
        String message = "";

        ZipParameters parameters = new ZipParameters();
        // set compression method to store compression
        parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);

        // Set the compression level
        parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);

        // add each file to the zipFile
        for(int i = 0; i < paths.size(); i++)
        {
            fileToAdd = new File(paths.get(i));

            if(fileToAdd.exists())
            {
                System.out.println("writing file at " + paths.get(i) + " to the zip file");
                zipFile.addFile(fileToAdd, parameters);
            }
            else
            {
                message += "File with at path " + paths.get(i) + " was not found.\n";
            }
        }

    } catch (ZipException e) {
        e.printStackTrace();
    }

添加时会打印所有文件路径。有任何想法吗?

4

2 回答 2

0

你没有关闭ZipFile.

于 2013-10-05T01:11:18.807 回答
0

jar我认为来自他们自己网站的文件有问题http://www.lingala.net/zip4j/download.php

但是当我从https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j/1.3.2的 maven 存储库下载它时,它运行良好。

于 2018-11-25T08:05:14.437 回答