![](/img/trans.png)
[英]How to create compressed Zip archive using ZipOutputStream so that method getSize() of ZipEntry returns correct size?
[英]java zipentry getsize returns -1
Java zipEntry.getSize()返回實際文件的大小,有時返回-1(盡管文件大小大於0)。
Java API文檔說“返回條目數據的未壓縮大小,如果未知,則返回-1”。
不確定在什么情況下它將返回-1,即在什么情況下將未知?
令人驚訝的是,使用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 ()
}
}
可從http://vimalathithen.blogspot.de/2006/06/using-zipentrygetsize.html找到技巧
如果那是ZipFile條目表中的內容,則將返回-1。 這僅僅是zip文件格式定義的一個方面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.