2011-12-19 82 views
0

我在我的jar中嵌入了一个压缩文件,并且想要读取未压缩的大小。我现在这样做的方式:解压缩嵌入罐子中的zip压缩文件的大小

ZipFile zipFile = new ZipFile(new File(this.getClass().getClassLoader().getResource("files.zip").toURI())); 
Enumeration<? extends ZipEntry> e = zipFile.entries(); 
long installedSize = 0; 
while (e.hasMoreElements()) { 
    ZipEntry entry = e.nextElement(); 
    installedSize += entry.getSize(); 
} 

这当然是比较脏的,也当我嵌入我的jar文件到使用JSmooth一个exe文件不起作用。

有没有更好的方式做到这一点(没有复制zip文件)?

回答

0

getSize()返回未压缩大小。这与getCompressedSize()相反。而且这两种工具都可以很好地处理zip文件,不管它们是作为独立文件存储还是嵌入到其他zip文件中 不幸的是我不知道如何用JSmooth解决这个问题。

如果files.zip是您的文件,您可以在构建时检查条目大小并将结果放入属性文件中。这是一个补丁,但它会起作用。