ZipFile.isSplitArchive 返回 false,即使我设置为 true

ZipFile.isSplitArchive is returning false even though I set to true

        // Initiate ZipFile object with the path/name of the zip file.
        ZipFile zipFile = new ZipFile("c:\ZipTest\CreateSplitZipFileFromFolder.zip");

        // Initiate Zip Parameters which define various properties such
        // as compression method, etc.
        ZipParameters parameters = new ZipParameters();

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

        // Set the compression level. This value has to be in between 0 to 9
        parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);

        // Create a split file by setting splitArchive parameter to true
        // and specifying the splitLength. SplitLenth has to be greater than
        // 65536 bytes
        // Please note: If the zip file already exists, then this method throws an 
        // exception
        zipFile.createZipFileFromFolder("C:\ZipTest", parameters, true, 10485760);

我从使用 zip4j 的示例代码中复制了这个,特别是名为 CreateSplitZipFileFromFolder.java

的文件

问题是,即使我将 createZipFileFromFolder 的第三个参数设置为 true,当我调用 ZipFile.isSplitArchive()

方法时,它仍然会 return false

从 grepcode 看来,它只是将 ZipModel 对象设置为我设置的布尔标志,但我得到了不同的值。知道这是为什么吗?

您生成的 ZIP 文件是否大于 splitLength 字节(在您的示例中为 10485760)?来自 createZipFile

的 splitLength 文档

if archive has to be split, then length in bytes at which it has to be split

我假设只有当 Zip 文件大于该大小时才会创建拆分文件。