如何提取ZIP存档

时间:2013-10-05 05:41:03

标签: c++ zip

帮我从zip存档中提取文件。 尝试使用zlib,但未编译minizip。 想尝试LZMA,但无法连接到该项目。 我使用VS C ++ 2010。

谢谢。

3 个答案:

答案 0 :(得分:0)

据我所知,LZMA可以处理整个zip存档,而zlib只能解压缩包含的数据。 zip存档是压缩文件的集合。因此,您需要解析存档,然后才能解压缩包含的数据块(文件)。查看Wikipedia上的文件格式说明。

答案 1 :(得分:0)

使用zlib,您可以执行以下操作:

#define ZLIB_WINAPI
#include <zlib.h>
#include <contrib\minizip\unzip.h>
#pragma comment(lib, "zlibwapi.lib")


bool decompress(void* dest, unsigned long* pcbDest, const void* src, size_t cbSrc)
{
    return uncompress((Bytef*)dest, pcbDest, (const Bytef*)src, cbSrc) == Z_OK;
}

另请参阅codeproject

中Gilles Volant的Zip / Unzip API的包装类的工作示例

答案 2 :(得分:0)

如果您对使用Windows的解决方案感到满意,我发现XZip非常易于使用。您只需要将XUnzip.h / .cpp添加到项目中,没有别的,没有其他依赖项。

还有miniz,它是便携式的,但我还没有尝试过(<)。