在 pro 文件添加 QT += gui-private
添加下面两个头文件
#include "QtGui/private/qzipreader_p.h"
#include "QtGui/private/qzipwriter_p.h"
#include "CreoPurger.h"
#include <QtWidgets/QApplication>
#include <QCirApplication.h>
#include <QtGui/private/qzipreader_p.h>
#include <QtGui/private/qzipwriter_p.h>
#include <qdir.h>
int main(int argc, char* argv[])
{
QCirApplication a(argc, argv);
a.setWindowIcon(QIcon(":/logo.svg"));
// 写zip
QString zipfilename("test.zip");
QZipWriter writer(zipfilename);
QDir dir(QStringLiteral("E:\\10-CREO测试用模型\\12-3DModels\\F1904006\\F1904006\\3D"));
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot);// 除了目录或文件,其他的过滤掉
dir.setSorting(QDir::DirsFirst);// 优先显示目录
QFileInfoList list = dir.entryInfoList();// 获取文件信息列表
foreach(QFileInfo fileInfo, list)
{
QFile file(fileInfo.filePath());
if (fileInfo.isDir())
{
writer.addDirectory(fileInfo.fileName());
}
else if (fileInfo.isFile())
{
if (file.open(QIODevice::ReadOnly))
{
writer.addFile(fileInfo.fileName(), &file);
file.close();
}
}
}
writer.close();
// 解压zip
QDir tempDir(QApplication::applicationDirPath());
tempDir.mkpath("test");
//QZipReader reader(zipfilename);
//reader.extractAll("test");
QFile filezip(zipfilename);
if (filezip.open(QIODevice::ReadOnly))
{
QZipReader reader(&filezip);
reader.extractAll(QApplication::applicationDirPath()+"/test");
}
{
// 通过文件流解压
QFile filezip(zipfilename);
if (filezip.open(QIODevice::ReadOnly))
{
QByteArray byte = filezip.readAll();
QBuffer buffer(&byte);
QZipReader reader(&buffer);
reader.extractAll(QApplication::applicationDirPath()+"/test");
}
}
CreoPurger w;
w.setIconVisible(true);
w.show();
return a.exec();
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于