这样做(相对简单)的代码时,我得到这个错误:java.util.zip.ZipException:无效CEN头(错误签名)
ZipFile zf = new ZipFile(fn);
Enumeration<? extends ZipEntry> eze = zf.entries();
while (eze.hasMoreElements()) {
ZipEntry ze = eze.nextElement();
System.out.println(ze.getName());
}
zf.close();
其实。有趣的是,我在java-sun-6u32和java-1.6.0-openjdk-amd64上得到它,但java-sun-7u4成功。解压缩本身似乎处理得很好。我猜这意味着这些zip文件可能是由java 7可以理解的一些更新版本的zip创建的,但以前的版本不能。但是,任何见解,将不胜感激。此外,由于在生产中我没有真正选择使用java 7,所以使java的早期版本能够理解这个新版本的zip(如果实际上是当然是什么问题)。
谢谢!您的评论提供
你能提供zip样品吗? –
*叹息*,不幸的是,我不能..有问题的文件是巨大的(707 megs),我不生产它们。 – bnsh
嗯..但是:我可以做7z l -slt whatever.zip并且得到 ' 7-Zip [64] 9.20 Copyright(c)1999-2010 Igor Pavlov 2010-11-18 p7zip版本9.20(locale = en_US .UTF-8,UTF16 =开,HugeFiles =上,8个CPU) 清单归档:./081212j400-13_file1of3.zip - 路径= ./081212j400-13_file1of3.zip 类型=拉链 64位= + 实际尺寸= 707951519 ' 嗯。我似乎不能正确地格式化。希望它仍然遇到寿。 – bnsh