簡體   English   中英

java zipentry getsize返回-1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM