我刚刚使用 java.util.zip 创建了一个 Zip 文件。现在我想检查创建的 ZIP 是否正确,以及 ZIP 文件的未压缩大小是否等于我压缩的实际文件夹。
我知道一个方法 ZipFile.isValid() 如果 ZIP 中的所有标题都正确,它会返回 true。虽然不能解决我的问题。
谢谢 :)
解压缩 *.zip 文件,遍历每个 ZipEntry 元素,对每个 ZipEntry.getSize() 求和。将此与您压缩的文件大小的总和进行比较。或者(如果您出于某种原因不信任 ZipEntry 标头)解压缩每个 ZipEntry,计算字节数,但丢弃它们。您可能会做这些事情中的任何一个,例如快速检查您的邮政编码,或者甚至可能在单元测试中。
因此,您可以遍历 ZipEntry:
zipInStream = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry zipEntry;
while ((zipEntry = zipInStream.getNextJarEntry()) != null) {
String entryName = zipEntry.getName();
....
}
检查 ZIP 文件是否正确创建
if (myZipFile.isValid())
{
// The file has been created successfully
}
知道目录和文件的长度。
File dir = new File("path/to/the/directory/");
int size = dir.length();
File zip = new File("path/to/zipfile.zip");
int zipSize = zip.length();
现在你可以比较它们了。