自动创建多级目录

1.不完美版

代码简单,使用递归创建多级目录

/**
 * @brief mkMutiDir  创建多级目录
 * @param path	     未创建的目录
 * @return 	     返回已创建的目录
 */
QString mkMutiDir(const QString path){
    QDir dir(path);
    if ( dir.exists(path)){
        return path;
    }
    QString parentDir = mkMutiDir(path.mid(0,path.lastIndexOf('/')));
    QString dirname = path.mid(path.lastIndexOf('/') + 1);
    QDir parentPath(parentDir);
    if ( !dirname.isEmpty() )
        parentPath.mkpath(dirname);
    return parentDir + "/" + dirname;
}

2.完美版

QString ExcelHelper::mkMutiDir(const QString path1)
{
	QString path = path1;
	//path.replace("/", "\\");
	path.replace("\\", "/");
	QDir dir(path);
	if (dir.exists(path)) {
		return path;
	}
	QString parentDir = mkMutiDir(path.mid(0, path.lastIndexOf('/')));
	QString dirname = path.mid(path.lastIndexOf('/') + 1);
	QDir parentPath(parentDir);
	if (!dirname.isEmpty())
		parentPath.mkpath(dirname);
	return parentDir + "/" + dirname;
}

3.指定路径(绝对路径)

//指定路径
	QString path = QString("D:\\") + QString("RecordInfo") + strStart + QString("---") + strEnd + QString(".xlsx");
	QString strKey = tr("ExcelRecordPath");
	QString value;
	ExcelHelper::ReadConfigFile(tr("Config"), strKey, path);
	ExcelHelper::mkMutiDir(path);
	path = path + QString("\\RecordInfo") + strStart + QString("---") + strEnd + QString(".xlsx");
	

4.默认路径(相对路径)

	//默认路径
	QString path("ExcelRecordFolder");
	QDir pDir;
	bool ret = pDir.exists(path);
	if (!ret) {
		ret = pDir.mkdir(path);
	}
	path = QDir::toNativeSeparators(QDir::currentPath()) + QString("\\") + path 
		 + QString("\\RecordInfo") + strStart + QString("---") + strEnd + QString(".xlsx");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值