【问题标题】:Reading from a Zip Archive从 Zip 存档中读取
【发布时间】:2012-09-17 00:33:48
【问题描述】:

在使用 zlib 1.2.7minizip 读取 zip 档案时,我发现它只能读取字节缓冲区。我正在将此数据传递给另一个库进行处理,但此库要求数据采用FILE* 的形式。

我是否可以使用内存中的字节缓冲区创建FILE*

【问题讨论】:

  • zlib 用于读取/写入压缩文件,而不是 zip 存档。为此,请参阅例如ziplib.
  • 他正在使用 minizip,它也适用于 zip 存档。 minizip 和 ziplib 都使用 zlib。

标签: c file zip zlib


【解决方案1】:

为什么这个问题使用 C++ 标签? C 的源和目的地是不可扩展的。因此,您需要依赖特定于平台的扩展。在 C++ 中,您可以创建合适的流缓冲区以将内容插入 IOStreams。但是,.zip 存档是存档而不是平面文件,也就是说,您需要考虑如何具体说明您实际要提取的对象。不过,这仍然是可行的。

【讨论】:

  • 我只会从我 /know/ 具有特定数量的文件并且所有这些文件具有特定名称的存档中读取。这就是你在上一个声明之前的那个声明的意思吗?
  • 是的,大概。我不会实现流缓冲区来提取任何特定文件或文件集,而是以指定 .zip 文件和包含的文件的方式执行此操作。我用于解压缩的 API zlib 没有提供访问存档组件的接口。不过,似乎有一个附加组件:winimage.com/zLibDll/minizip.html.
  • 是的,我知道那个插件。主要是因为我已经在使用它了;o(对不起,我之前忘了提)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多