我有一个需要对目录使用标准压缩格式的 C++ 应用程序。我考虑过使用 zip 格式。因此,zlib 是显而易见的。
我的问题是构建字典,即将包含一些带有 zlib 文件的目录压缩为标准 zip 文件。
我读过 zlib 做到了,但我不明白怎么做。我检查了 minzip 代码。它似乎使用gzip。我可以构建自己的格式,但我希望能够使用 7z 打开这些文件进行调试(以防万一)。
我应该在 zlib 中使用什么来压缩目录?
[编辑] 在 minzip 中 ,我使用 minzip 将 1 个文件压缩到其 gz 版本 -> 不是 zip,但对我来说很好。(我将在世界上的各种编译器上使用它——如果客户端平台出现问题,使用标准格式会更容易)
此外,在main
. 它在文件列表上循环并将其写入输出。但是档案中文件位置的信息在哪里?
do {
if (uncompr) {
if (copyout) {
file = gzopen(*argv, "rb");
if (file == NULL)
fprintf(stderr, "%s: can't gzopen %s\n", prog, *argv);
else
gz_uncompress(file, stdout);
} else {
file_uncompress(*argv);
}
} else {
if (copyout) {
FILE * in = fopen(*argv, "rb");
if (in == NULL) {
perror(*argv);
} else {
file = gzdopen(fileno(stdout), outmode);
if (file == NULL) error("can't gzdopen stdout");
gz_compress(in, file);
}
} else {
file_compress(*argv, outmode);
}
}
} while (argv++, --argc);
对不起,如果这很明显。