QT使用qUncompress解压缩zip文件

时间:2014-04-24 14:37:01

标签: qt

我使用qUncompress解压缩最初在Mac OS X中压缩的文件(右键单击 - >压缩)

我的代码如下:

        QString location = "/path/to/file/";
        QFile infile(location + "file.zip");
        QFile outfile(location + "file.app");
        infile.open(QIODevice::ReadOnly);
        outfile.open(QIODevice::WriteOnly);
        QByteArray uncompressedData = infile.readAll();
        QByteArray compressedData = qUncompress(uncompressedData);
        outfile.write(compressedData);
        infile.close();
        outfile.close();

但是我收到了这个错误:

qUncompress: Z_DATA_ERROR: Input data is corrupted

任何想法可能出错?

1 个答案:

答案 0 :(得分:0)

@Dmitry Sazonov是对的。 qUncompress是针对Qt如何存储媒体数据而设计的。它以压缩形式将媒体数据存储在二进制文件中的字符串中,其中qUncompress在执行期间使用。它不会帮助你.zip文件。

根据zlib网站常见问题解答,zlib无法对zip文件进行充气。该FAQ的作者推荐minizip。

链接:    http://www.zlib.net/zlib_faq.html#faq11