【发布时间】:2021-01-01 16:53:39
【问题描述】:
我正在使用 zip_utils。
https://www.codeproject.com/Articles/7530/Zip-Utils-Clean-Elegant-Simple-Cplusplus-Win
我让它可以处理 zip 文件,但我无法压缩任何 .gz (gzip) 文件。文档(见上文)似乎表明它应该可以工作。这是我正在使用的代码:
HZIP hz = OpenZip(sourcePath.c_str(), 0);
SetUnzipBaseDir(hz, dir.c_str());
ZIPENTRY ze; GetZipItem(hz, -1, &ze); int numitems = ze.index; // -1 gives overall information about the zipfile
for (int zi = 0; zi < numitems; zi++)
{
ZIPENTRY ze; GetZipItem(hz, zi, &ze); // fetch individual details
UnzipItem(hz, zi, ze.name); // e.g. the item's name.
//UnzipItem(hz, zi, destPath.c_str());
}
CloseZip(hz);
【问题讨论】:
-
究竟是什么不起作用?有错误代码吗?
-
未生成错误代码。输出文件为空。
-
你检查了吗?所有这些“zip”函数都会返回它们的状态。
-
刚刚对所有 zip 函数进行了测试。使用 zip 文件,所有函数都返回零。但是,对于 gz 文件,openzip 返回,131:“尝试将文件指针移动到文件开头之前”
-
我对那个库一无所知,只是指出你总是需要检查任何 API 的返回码。而且,那个图书馆已经有 15 年没有动过了;没有更多最新(和维护)的 zip 库吗? (不要回答这个问题;这是一个反问)