当前位置: 首页 > news >正文

wordpress acg站下载网页设计素材

wordpress acg站,下载网页设计素材,电商平台网站技术开发,私人装修接单网站一、实现方式 通过Qt自带的库来实现#xff0c;使用多线程方式#xff0c;通过信号和槽来触发压缩与解压缩#xff0c;并将压缩和解压缩结果回传过来。 使用的类#xff1a; #include QtGui/private/qzipreader_p.h #include QtGui/private/qzipwriter…一、实现方式 通过Qt自带的库来实现使用多线程方式通过信号和槽来触发压缩与解压缩并将压缩和解压缩结果回传过来。 使用的类 #include QtGui/private/qzipreader_p.h #include QtGui/private/qzipwriter_p.h二、环境准备 1、在.pro文件中添加模块gui-private QT core gui gui-private若未cmake工程需要在CMakeList.txt中添加 includeinclude_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}))三、实现示例 #include QFileInfoList #include QDir #include QFileInfo#define FILE_MAX_SIZE 1024QFileInfoList ergodic_compression_file(QZipWriter *writer, const QString rootPath, QString dirPath) {QDir crrDir(dirPath);///解压失败的文件QFileInfoList errFileList;///添加文件QFileInfoList fileList crrDir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);for (const QFileInfo fileInfo : fileList){QString subFilePath fileInfo.absoluteFilePath();QString zipWithinfilePath subFilePath.mid(rootPath.size() 1);QFile file(subFilePath);qint64 size file.size() / 1024 / 1024;if (!file.open(QIODevice::ReadOnly) || size FILE_MAX_SIZE){///打开文件失败或者大于1GB导致无法解压的文件errFileList.append(fileInfo);continue;}writer-addFile(zipWithinfilePath, file.readAll());file.close();}///添加文件夹QFileInfoList folderList crrDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);for (const QFileInfo folderInfo : folderList){QString subDirPath folderInfo.absoluteFilePath();QString zipWithinDirPath subDirPath.mid(rootPath.size() 1);writer-addDirectory(zipWithinDirPath);QFileInfoList child_file_list ergodic_compression_file(writer, rootPath, subDirPath);errFileList.append(child_file_list);}return errFileList; }bool compression_zip_file(const QString selectFile2DirPath, const QString savePath) {if (selectFile2DirPath.isEmpty() || savePath.isEmpty()){return false;}if (!QFile::exists(selectFile2DirPath) || !QFileInfo(savePath).isDir()){return false;}if (QFileInfo(selectFile2DirPath).isFile())///压缩的是一个文件{QString fileName QFileInfo(selectFile2DirPath).baseName();QString writerFilePath savePath / fileName .zip;QFile selectFile(selectFile2DirPath);qint64 size selectFile.size() / 1024 / 1024;if (!selectFile.open(QIODevice::ReadOnly) || size FILE_MAX_SIZE){///打开文件失败或者大于1GB导致无法压缩的文件return false;}QString addFileName QFileInfo(selectFile2DirPath).fileName();QZipWriter writer(writerFilePath);writer.addFile(addFileName, selectFile.readAll());selectFile.close();return true;}else///压缩的是一个文件夹{QString zipRootFolder selectFile2DirPath.mid(selectFile2DirPath.lastIndexOf(/) 1);QString selectDirUpDir selectFile2DirPath.left(selectFile2DirPath.lastIndexOf(/));QString saveFilePath savePath / zipRootFolder .zip;QZipWriter writer(saveFilePath);writer.addDirectory(zipRootFolder);QFileInfoList fileList ergodic_compression_file(writer, selectDirUpDir, selectFile2DirPath);writer.close();if (0 fileList.size())return true;return false;} }bool decompression_zip_file(const QString selectZipFilePath, const QString savePath) {if (selectZipFilePath.isEmpty() || savePath.isEmpty()){return false;}if (!QFileInfo(selectZipFilePath).isFile() || !QFileInfo(savePath).isDir()){return false;}bool ret true;QZipReader zipReader(selectZipFilePath);QVectorQZipReader::FileInfo zipAllFiles zipReader.fileInfoList();for (const QZipReader::FileInfo zipFileInfo : zipAllFiles){const QString currDir2File savePath / zipFileInfo.filePath;if (zipFileInfo.isSymLink){QString destination QFile::decodeName(zipReader.fileData(zipFileInfo.filePath));if (destination.isEmpty()){ret false;continue;}QFileInfo linkFi(currDir2File);if (!QFile::exists(linkFi.absolutePath()))QDir::root().mkpath(linkFi.absolutePath());if (!QFile::link(destination, currDir2File)){ret false;continue;}}if (zipFileInfo.isDir){QDir(savePath).mkpath(currDir2File);}if (zipFileInfo.isFile){QByteArray dt zipFileInfo.filePath.toUtf8();QString strtmp QString::fromLocal8Bit(dt);QFile currFile(currDir2File);if (!currFile.isOpen()){currFile.open(QIODevice::WriteOnly);}else {ret false;continue;}qint64 size zipFileInfo.size / 1024 / 1024;if (size FILE_MAX_SIZE){ret false;continue;}QByteArray byteArr zipReader.fileData(strtmp);currFile.write(byteArr);currFile.setPermissions(zipFileInfo.permissions);currFile.close();}}zipReader.close();return ret; }待完善 1、中文路径文件名含有中文 2、快捷文件隐藏文件 3、隐藏文件夹.dir和…dir例如.vs 4、单个超大文件的支持1G以上 如有错误或不足欢迎评论指出创作不易转载请注明出处。如有帮助记得点赞关注哦(⊙o⊙) 更多内容请关注个人博客https://blog.csdn.net/qq_43148810
http://www.pierceye.com/news/557564/

相关文章:

  • 北京旅游外贸网站建设手机制作手书app软件
  • 响应式网站 分辨率泉州教育网站
  • 企业在线购物网站建设做画册的网站
  • 做网站图片自动切换怎么建立官网
  • 河南制作网站电话免费的网站登录模板
  • 鹰潭做网站的建筑工程公司取名
  • 网站建设与运营实验开发一个网站的成本
  • 自考网站建设与管理资料郑州高端网站建设哪家好
  • 网站设计开发维护设计云网站
  • 北京工商局网站怎么做增资h5个人页面制作
  • 北京好的网站建设12个 网站模板 管理办法
  • vs2017 如何做网站最近一周新闻热点大事件
  • wordpress建站欣赏解释网站为什么这样做
  • 网站建设模板登录界面七牛wordpress插件
  • 手机 网站制作上饶企业网站建设
  • 网站建设需要知道什么软件深达网站制作深圳公司
  • 怎么做监控网站Wordpress页面函数
  • 梁平网站建设百度搜索排名优化哪家好
  • 芜湖网站建设芜湖狼道cad精品课网站建设
  • qq空间认证的网站后台根目录seo和sem是什么意思
  • 中国建设集团门户网站装修公司做网站
  • 东莞seo建站公司哪家好怎么把网站推广出去
  • 网站建设什么时候好豆瓣wordpress
  • 动漫网站设计报告最好的wordpress商城主题
  • 陕西餐饮加盟网站建设如何做一个网站代码
  • 合浦住房和城乡规划建设局网站网页设计培训机构学什么好
  • 做网站需要注意的地方模板ppt
  • 自己建立公司网站自助建站系统
  • 淅川微网站开发wordpress 侧边收起
  • 网站建设企业哪家好乐清站在那儿