Zip4j缺少最后添加的文件

时间:2013-10-05 01:02:08

标签: java zip zip4j

我正在尝试使用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();
    }

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

2 个答案:

答案 0 :(得分:0)

您没有关闭ZipFile.

答案 1 :(得分:0)

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

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