Qt之复制文件夹
扫描二维码
随时随地手机看文章
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()......)的条件判断即可。