123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include "FileUtil.h"
- #include <QCoreApplication>
- #include <QFileDialog>
- #include <QSettings>
- #include <QDebug>
- #include <qdir.h>
- FileUtil::FileUtil() { }
- bool FileUtil::copyDirectoryFiles(QString &srcFilePath, QString &tgtFilePath, bool coverFileIfExist)
- {
- QDir sourceDir(tgtFilePath);
- QDir targetDir(srcFilePath);
- if (!targetDir.exists()) { /**< 如果目标目录不存在,则进行创建 */
- if (!targetDir.mkdir(targetDir.absolutePath()))
- return false;
- }
- QFileInfoList fileInfoList = sourceDir.entryInfoList();
- foreach (QFileInfo fileInfo, fileInfoList) {
- if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
- continue;
- if (fileInfo.isDir()) { /**< 当为目录时,递归的进行copy */
- QString str = fileInfo.filePath();
- QString strTar = targetDir.filePath(fileInfo.fileName());
- if (!copyDirectoryFiles(str, strTar, coverFileIfExist))
- return false;
- } else { /**< 当允许覆盖操作时,将旧文件进行删除操作 */
- if (coverFileIfExist && targetDir.exists(fileInfo.fileName())) {
- targetDir.remove(fileInfo.fileName());
- }
- /// 进行文件copy
- if (!QFile::copy(fileInfo.filePath(),
- targetDir.filePath(fileInfo.fileName()))) {
- return false;
- }
- }
- }
- return true;
- }
- bool FileUtil::importEngineerFile()
- {
- QFileDialog::Options options;
- options |= QFileDialog::DontUseNativeDialog;
- QString srcDirPath = QFileDialog::getExistingDirectory(nullptr, "导入资源包", "/", options);
- qDebug() << "importEngineerFile-------" << srcDirPath;
- if (srcDirPath.isEmpty() || srcDirPath.size() <= 0) {
- return false;
- }
- QSettings config("config.ini", QSettings::IniFormat);
- config.setIniCodec("UTF-8");
- QString sysDbPath = QCoreApplication::applicationDirPath();
- sysDbPath += config.value("USERCONFIG/DbPath", "").toString();
- bool result = FileUtil().copyDirectoryFiles(sysDbPath, srcDirPath, true);
- return result;
- }
|