yot*_*ain 5 java zip zipinputstream
Java zipEntry.getSize()返回实际文件的大小,有时返回-1(尽管文件大小大于0)。
Java API文档说:“返回条目数据的未压缩大小;如果未知,则返回-1。”
不确定在什么情况下它将返回-1,即在什么情况下将未知?
小智 7
令人惊讶的是,使用 ZipFile 而不是 ZipInputStream 来获取条目会使 getSize 和 getCompressedSize 返回正确的值。
ZipFile zipfile = new ZipFile("myFile.zip");
java.util.Enumeration zipEnum = zipfile.entries();
while (zipEnum.hasMoreElements ())
{
ZipEntry entry = (ZipEntry) zipEnum.nextElement();
if (! entry.isDirectory ())
{
// entry.getName()
// entry.getSize ()
// entry.getCompressedSize ()
}
}
Run Code Online (Sandbox Code Playgroud)
在http://vimalathithen.blogspot.de/2006/06/using-zipentrygetsize.html找到的技巧