Qt之复制文件夹

来源:互联网 发布:oa协同软件 编辑:程序博客网 时间:2024/06/10 00:46
bool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath){QFileInfo srcFileInfo(srcFilePath);if (srcFileInfo.isDir()) {QDir targetDir(tgtFilePath);targetDir.cdUp();if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName()))return false;QDir sourceDir(srcFilePath);QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);foreach(const QString &fileName, fileNames) {const QString newSrcFilePath= srcFilePath + QLatin1Char('/') + fileName;const QString newTgtFilePath= tgtFilePath + QLatin1Char('/') + fileName;if (!copyRecursively(newSrcFilePath, newTgtFilePath))return false;}}else {if (srcFileInfo.fileName().contains("oadata.db", Qt::CaseInsensitive) ||srcFileInfo.fileName().contains("basedata.db", Qt::CaseInsensitive) ||srcFileInfo.fileName().contains("account.db", Qt::CaseInsensitive) ||srcFileInfo.fileName().contains("config.db", Qt::CaseInsensitive) {if (!QFile::copy(srcFilePath, tgtFilePath))return false;}}return true;}

上面这段代码是将文件夹srcFilePath中的数据库文件(*.db)复制到目标文件夹tgtFilePath中,如果要复制文件夹中的所有文件去掉if(srcFileInfo.fileName()......)的条件判断即可。



原创粉丝点击