我有一个visual c项目,我希望在目录结构中包含一个包含多个文件的存档 我想以编程方式将它提取到磁盘上的某个地方,使用一个最好的小型库(小的我只是意味着几个.c和.h文件 - 大小并不重要),但我似乎只找到解压缩或压缩的库数据直接(我查看lzo-lzop-minilzo,但我似乎没有找到任何说它可以解压缩整个目录树的东西,即使我已经使用lzop来压缩存档文件)
感谢
答案 0 :(得分:1)
zlib和随附(在contrib
)minizip库中支持.zip格式解压缩。
您可以将.zip文件打包为可执行文件中的资源。要从.exe获取原始数据,请使用FindResource
,SizeofResource
,LoadResource
,LockResource
API。
然后查看minizip的示例,了解如何解压缩和读取zlib的文档以重载I / O回调。
免责声明:我为Linderdaum Engine's虚拟文件系统执行此操作,现在支持.zip,.tar,.rar(未压缩)和.tar.gz格式。 VFS的代码在Src / Linderdaum / Core / VFS中,并且在MIT许可下用于非商业用途。它是C ++,但zlib的I / O包装器使用C风格的API,代码非常简单。