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");