bool MainForm::copyDirectoryFiles(const QString& fromDir, const QString& toDir, bool coverFileIfExist)
{
try {
QDir sourceDir(fromDir);
QDir targetDir(toDir);
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
if (!copyDirectoryFiles(fileInfo.filePath(),
targetDir.filePath(fileInfo.fileName()),
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;
}
catch (std::exception& ex)
{
//cout << ex.what();
coutFunc(ex);
// ERROR_CATCH(Slog::sys_s, ex);
}
}
07-06
7940
04-18
1771
07-16
1083
09-14
3405