Qt之复制文件夹
程序员文章站
2024-02-19 11:32:10
...
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()......)的条件判断即可。
上一篇: 使用file上传文件,保存到服务器中
下一篇: ES6 的几个小技巧