ディレクトリに標準の圧縮形式を使用する必要がある 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);
これが明らかな場合は申し訳ありません。