2013-10-05 148 views
0

帮我从zip压缩文件中解压缩文件。 尝试使用zlib,但未编译minizip。 想要尝试LZMA,但无法连接到该项目。 我使用VS C++ 2010.如何解压ZIP存档

谢谢。

+0

尝试:[zlib](http://zlib.net/) – P0W

回答

0

据我所知,LZMA可以处理整个zip档案,而zlib只能解压缩包含的数据。 zip档案是一组压缩文件。因此,在解压缩包含的数据块(文件)之前,您需要解析存档。看看Wikipedia上的文件格式说明。

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

0

工作吉尔斯展翅的压缩/解压缩的API例如包装类的。如果您没有问题Windows的唯一解决方案,我发现XZip非常容易使用。你只需要将XUnzip.h/.cpp添加到你的项目中,没有别的,没有其他的依赖。

还有miniz,这是便携式,但我还没有尝试过(尚未)。