当前位置:首页 > 芯闻号 > 充电吧
[导读]bool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath) { QFileInfo sr

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()......)的条件判断即可。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭