2010-07-27 108 views
5

有几种版本的ZIP格式(http://en.wikipedia.org/wiki/ZIP_%28file_format%29#Version_history)。目前还不清楚Java支持哪个版本。在ZipOutputStream的源代码中,它定义了一个与“头文件的最低版本”部分相关的常量,但我不能100%确定这是对我的问题进行逆向工程解决方案的正确方法。Java支持哪种ZIP版本(1.6或其他版本)

任何人都可以在这里提供更好的建议吗?

谢谢。

+0

为什么不使用你的系统上安装的压缩'Runtime.getRuntime()。exec(command);'其中command是字符串zip -r ... – ant 2010-07-27 21:32:11

+0

@ c0mrade默认情况下,所有的Windows系统都有'zip'吗?毕竟,java应该是可移植的。 – 2010-07-27 21:34:59

+0

因为我直接从内存中的结构中压缩 - 将外包到地址空间外的应用程序在我的场景中没有任何意义(并且不,我不想将数据写入临时文件和ZIP) 。无论如何感谢您的建议。 – kvista 2010-07-27 21:35:11

回答

3

了Info-ZIP应用笔记970311

的压缩方案在java.util.zip包摘要中列出。

+2

对不起,我应该提到我也看到了,但不幸的是,如果你点击包摘要中提供的Info-Zip链接,就会发出登录(!)这明显阻止了人们获取实际数据。但是,由于您提醒我这一点,我决定深入研究,发现您可以在http://www.info-zip.org/doc/appnote-19970311-iz.zip上找到相同的文档。从那里,我得到了类似README的文件,这似乎表明答案是2.50。请让我知道,如果你进一步追求这一点,你是否会推论出不同的东西。感谢您的提醒。 – kvista 2010-07-27 23:30:04