Qt压缩文件及文件夹
QString zipPath = QCoreApplication::applicationDirPath() + "/";
QFileInfoList fileList = QFileInfoList() ;
QZipWriter *writer = new QZipWriter(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/" + tr("test.zip"));
fileList = GetFileList(zipPath );
foreach (QFileInfo fileInfo, fileList) {
QFile file(fileInfo.filePath());
if (!file.exists()) continue;
file.open(QIODevice::ReadOnly);
writer->addFile(fileInfo.fileName(), file.readAll());
file.close();
}
QString fileName = QCoreApplication::applicationDirPath() + QStringLiteral("/arrange/Arrange.xml");
QFile file(fileName);
file.open(QIODevice::ReadOnly);
writer->addFile(QStringLiteral("arrange/Arrange.xml") ,file.readAll());
file.close();
writer->close();
if(writer)
{
delete writer;
writer = nullptr;
}
QFileInfoList MainWindow::GetFileList(QString path)
{
QDir dir(path);
QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList file_newlist;
for(int i=0; i<file_list.size(); i++){
if((file_list.at(i).completeBaseName() == tr("file1")) || (file_list.at(i).completeBaseName() == tr("file2")) ){
file_newlist.append(file_list.at(i));
}
}
return file_newlist;
}
头文件
#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h"
.pro
添加: gui-private
`
头文件
#include <QFileInfoList>
#include <QStandardPaths>
#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h"