Folder compression uses QZipWriter package method
Add
QT += core gui-private to project engineering files
#include <private/qzipreader_p.h>
#include <private/qzipwriter_p.h>
bool QZipHelper::zip(QString SavePath,QString DirPath,QString layer){
bool ret;
QZipWriter *writer = new QZipWriter(SavePath);
if(QZipWriterEx(writer,DirPath,layer)){
ret=true;
}else{
ret=false;
}
writer->close();
delete writer;
return ret;
}
bool QZipHelper::QZipWriterEx(QZipWriter *writer,QString DirPath,QString layer){
QDir dir(DirPath);
if (dir.exists()) {
dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);
dir.setSorting(QDir::DirsFirst);
QFileInfoList list = dir.entryInfoList();
int i=0;
do{
QFileInfo fileInfo = list.at(i);
bool bisDir = fileInfo.isDir();
if(bisDir) {
QZipWriterEx(writer,fileInfo.filePath(),layer);
}
else{
QFile file(fileInfo.filePath());
if (file.exists())
{
file.open(QIODevice::ReadOnly);
QString filename=file.fileName().replace(QApplication::applicationDirPath()+"/","");
//特别 处理
if(layer!="")
filename=filename.replace(layer,"");
writer->addFile(filename,file.readAll());
}
file.close();
}
i++;
} while(i < list.size());
}else {
return false;
}
return true;
}
## 标题QZipWriter