如何仅使用一个文件流式传输ZIP存档?

时间:2012-03-05 13:02:37

标签: stream zip

想象一下这种情况:我有一个只有一个条目的ZIP存档。我提前知道了这个条目的名称。

如何在不必先读取整个ZIP存档的情况下展开此单个条目?

详细信息:ZIP存档的TOC会附加到ZIP存档的末尾。通常,在阅读整个存档之前,您无法开始阅读条目。其他归档程序(如targzip)首先为我提供标题,然后是条目数据。

在我的情况下,存档只是一个文件,我知道文件名(content.xml,没有路径)。

1 个答案:

答案 0 :(得分:0)

虽然它并不能保证按照规范工作,但在你的情况下它应该只是搜索第一个条目的开始。您可以对其进行解压缩,然后验证在到达目的地并解压缩目录时实际获得了所需的数据。

我不知道是否有任何图书馆支持这一点,并且鉴于它没有得到官方的支持,我不希望这样。所以你必须拆开一些读者(例如zlib中捆绑的minizip应该相当简单)并自己实现。