0
私はアプリケーションで、Linuxでzlibを使ってアーカイブ処理を実装しようとしています。このアプリはQt5でC++で書かれています。Zlib解凍機能は解凍の代わりにコピーします
これは私の例の機能である:
int Foo::decompress(const QString &file)
{
char buffer[128];
int num_read=0;
gzFile fi = gzopen(file.toUtf8().constData(),"rb");
FILE *outfile = fopen("/Data/test.unz", "wb");
if (!fi || !outfile) return -1;
while ((num_read = gzread(fi, buffer, sizeof(buffer))) > 0) {
fwrite(buffer, 1, num_read, outfile);
}
gzclose(fi);
fclose(outfile);
}
このコードは、代わりにそれを解凍するの、私はそれを養うどんなファイルコピーする原因となります。私はいくつかのzlib圧縮解除のトピックを読んだことがありますが、それらはすべて私の混乱に加わります。
助けが必要ですか?
これを実行した後、 '/ Data/test.unz'に解凍されたコンテンツが含まれています。そうでなければ、入力ファイルが実際に最初にgzipされたことを確かめますか? 'gunzip'コマンドラインユーティリティはあなたが望むことをしますか? –
さて、いいえ、言及したように、それは単にzipファイルのコピーです。明確にするために、私は将来すべての種類のアーカイブを使用することを期待していますが、私は今は普通の古いzipファイルを使用しています。 –