解压缩文件时不会抛出Qt5的“未找到存档”错误

解压缩文件时不会抛出Qt5的“未找到存档”错误,qt,zip,qt5,Qt,Zip,Qt5,我已经实现了一个创建zip文件的代码。zip文件已成功创建,但当我手动(无代码)尝试通过解压来检查zip文件的内容时,会出现一个错误,提示“未找到存档文件”,解压过程停止。。为什么会出现这个问题 这是我的密码 #include <QCoreApplication> #include <QByteArray> #include <QBitArray> #include <QString> #include <QDebug> #includ

我已经实现了一个创建zip文件的代码。zip文件已成功创建,但当我手动(无代码)尝试通过解压来检查zip文件的内容时,会出现一个错误,提示“未找到存档文件”,解压过程停止。。为什么会出现这个问题

这是我的密码

#include <QCoreApplication>
#include <QByteArray>
#include <QBitArray>
#include <QString>
#include <QDebug>
#include <QFile>

void Zip(QString filename , QString zipfilename);

int main(int argc, char *argv[]){
  QCoreApplication a(argc, argv);

  Zip("C:\\programs\\zipping_qt\\sample.txt",
      "C:\\programs\\zipping_qt\\samples.zip");
  qDebug() << "Done zipping";

  return a.exec();
}

void  Zip (QString filename , QString zipfilename){
  QFile infile(filename);
  QFile outfile(zipfilename);
  infile.open(QIODevice::ReadOnly);
  outfile.open(QIODevice::WriteOnly);
  QByteArray uncompressedData = infile.readAll();
  QByteArray compressedData = qCompress(uncompressedData,9);
  outfile.write(compressedData);
  infile.close();
  outfile.close();
}  
#包括
#包括
#包括
#包括
#包括
#包括
void-Zip(QString文件名,QString-zipfilename);
int main(int argc,char*argv[]){
qcorea应用程序(argc、argv);
Zip(“C:\\programs\\zipping\u qt\\sample.txt”,
“C:\\programs\\zipping\u qt\\samples.zip”);

qDebug()
qCompress
不创建zip文件。它使用zlib创建压缩数据块。这些块只能通过使用
qUncompress
或直接调用zlib来直接解压缩。没有标准的独立实用程序可以进行这种解压缩。甚至
gunzip
也不能,因为zlib风格的API使用dif与gzip不同的头文件

关于您的代码,还有其他一些挑剔之处:

  • 如果不需要运行事件循环,则无需调用
    a.exec()

  • >P>不需要显式关闭文件,因为QFix是一个合适的C++类,实现了RaII.< /P>
  • 您从不检查
    open
    readAll
    write
    是否成功


  • 你能为Qt提供一个例子或教程,对文本文件或任何类型的文件进行压缩和解压缩吗matter@ParthDoshi这里没有特定于Qt的内容,因为Qt不提供此功能。您可以使用众多zip文件支持库中的一个。比如,或者查看。