如何提取ZIP存档
How extract ZIP archive
帮我从zip存档中提取文件。尝试使用 zlib,但未编译 minizip。想尝试 LZMA,但无法连接到项目。我使用 VS C++ 2010。
谢谢。
如果你对仅限Windows的解决方案感到满意,我发现XZip非常易于使用。你只需要将 XUnzip.h/.cpp 添加到你的项目中,没有别的,没有其他依赖项。
还有 miniz,它是便携式的,但我还没有尝试过(还没有)。
据我所知,LZMA 可以处理整个 zip 存档,而 zlib 只能解压缩包含的数据。zip 存档是压缩文件的集合。因此,您需要先解析存档,然后才能解压缩包含的数据块(文件)。看看维基百科上的文件格式描述。
使用 zlib,你可以做这样的事情:
#define ZLIB_WINAPI
#include <zlib.h>
#include <contribminizipunzip.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的包装类的工作示例
相关文章:
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 删除提升存档对象也会删除与其关联的流?
- 提示存档文件中的动态库依赖项
- 使用 Poco::Zip 将文件附加到现有 zip 文件
- 如何在 c++ 中打印存档中的对象向量
- 无法在 Cocos2dx 中使用受密码保护的 zip 文件
- 使用 Poco::zip 添加新目录始终给出异常
- 如何使用 Poco::ZIP 压缩/解压缩 zip 文件
- 需要从存档中读取一行文本.txt直到找到"hhh",然后转到下一行
- 在现代 CMake 项目中存档静态依赖项
- 如何将空文件夹和符号链接添加到存档 - libarchive
- 收获(加热) Wix - 在 MSI 中存档资源
- C++.SevenZip压缩为zip格式.ClassFactory无法提供请求的类
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- 使用 c++ 处理 zip 存档
- 如何提取ZIP存档
- 在内存中创建文件,然后使用7-zip命令行将它们推入zip存档
- 用minizip/zlib从zip存档中加载文本文件,文件末尾有垃圾字符
- 正在创建ZIP存档压缩级别(libzip)
- 将所有文件从一个 ZIP 存档移动到另一个存档