Qt源码中有qzipreader类来解压文件,qzipwriter类来压缩文件
源码需要在安装Qt时勾选src,解压后在src文件夹中
#include<QtGui\5.7.1\QtGui\private\qzipreader_p.h>
#include<QtGui\5.7.1\QtGui\private\qzipwriter_p.h>
示例
/*压缩文件*/
void writer()
{
QString path;//压缩路径
QZipWriter *writer = new QZipWriter(path);
writer->addDirectory(unCompress);//添加文件夹
QFile file1(data);
if (!file1.exists())
{
qCritical() << QString::fromLocal8Bit("error,%1 is not exit").arg(data);
return;
}
file1.open(QIODevice::ReadOnly);
writer->addFile(data, file1.readAll());//添加文件
file1.close();
writer->close();
}
/*解压文件*/
void reader()
{
QString path;//压缩路径
QZipReader reader(path);
QString ddd("");
reader.extractAll(ddd);//解压文件夹到当前目录
QZipReader::FileInfo fileInfo = reader.entryInfoAt(0);//文件夹名称
QFile file1(data);
file1.open(QIODevice::WriteOnly);
file1.write(reader.fileData(QString::fromLocal8Bit("%1").arg(data)));//解压文件
file1.close();
reader.close();
}
注意事项
压缩的文件名中不能带有中文。