// 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()
时,它仍然会返回false
从 grepcode 看来,它只是将 ZipModel 对象设置为我设置的 boolean 标志,但我得到了不同的值。有什么想法吗?
最佳答案
您生成的 ZIP 文件是否大于 splitLength
字节(在您的示例中为 10485760)?来自 createZipFile 的 splitLength 文档
if archive has to be split, then length in bytes at which it has to be split
我假设只有当分割的 Zip 文件大于该大小时才会创建它。
关于java - 即使我设置为 true,ZipFile.isSplitArchive 仍返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120135/