2009-11-18 152 views
3

我正在开发一个BlackBerry应用程序,我需要解压缩使用PKZIP压缩的zip文件。该软件包可以包含一个文件,也可以有10个文件;它会在每种情况下有所不同。我知道BlackBerry API对GZip和Zlib有原生支持,但我确信这些方法对我来说不会有帮助。它看起来不像我可以使用这些调用来提取单个文件。BlackBerry - 解压缩Zip文件

我试过JZlib(http://www.jcraft.com/jzlib/),它编译得很好,但它看起来好像其中包含的方法不会让我拉取单个文件。

看起来好像这是可能的,因为有一个称为Ziplorer(http://www.s4bb.com/software/ziplorer/)的应用程序声称可以执行此确切过程。然而,他们如何做,逃避了我。

所以在这里,我在谷歌搜索后数小时。我很开放的怀抱欢迎任何对我的问题的深入了解。

+0

您是否考虑过使用gnu或开源许可资源释放您的应用程序(我假设)获利的许可问题? – 2009-11-18 19:57:04

+0

该应用程序实际上是免费的,所以我不相信会有任何许可问题。 – harrywynn 2009-11-19 16:28:43

回答

0

“zip”算法通常是Lempel-Ziv-Welch算法的旁枝。它们是一种相当有效的流压缩算法,但是由于它们的功能如何,您无法开始在文件中的随机点进行解压缩,您必须从头开始。

声称能够从zip解压缩一个文件的任何产品仍然需要解压zip文件中的所有文件才能知道如何解密给定文件,或者甚至在文件的位置在档案中。

+0

虽然这是真的,但这不是对原始海报问题的回答。有许多zipfile API /库可以从档案中检索单个文件,例如Python的zipfile库。简而言之,您可以通过从一开始就开始,解码并丢弃任何不是您想要的文件的方法来完成。 – 2010-06-22 13:00:24