//比如要a拷到b目录,目标目录要写成b/a
bool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath)
{
QFileInfo srcFileInfo(srcFilePath);
if (srcFileInfo.isDir()) {
QDir targetDir(tgtFilePath);
bool ok = targetDir.cdUp();
if (ok && !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 (!QFile::copy(srcFilePath, tgtFilePath)) return false;
}
return true;
}
注意:QFile::copy在tgeFilePath文件存在,就会失败
qt中递归复制目录
最新推荐文章于 2024-02-02 19:08:02 发布