几乎将所有的mkdir的方式都尝试了 ,都没有成功。这个方法亲测可以,不过在路径存在时会给出提示。
#include <iostream>
#include <io.h>
#include <direct.h>
#include <stdio.h>
//涉及的头文件
void CreateDir(std::string file)
{
char cm[100];
int m = 0;
std::string dir, name;
dir= file.substr(0, 2);
name= file.substr(3, str1.size());
while (m >= 0)
{
m = name.find('\\');//不断寻找分隔符,区分目录和名字
dir += '\\' + name.substr(0, m);
//判断该目录是否存在
name = name.substr(m + 1, name.size());
}
sprintf_s(cm, "mkdir %s",dir.c_str());
//此处的路径必须是D:\\..\\,因此上面循环不断拼接路径
system(cm);
}
int main(int argc, char *argv[])
{
std::string file= "D:\\tttt\\2\\3";
std::string prefixPath="D:\\tttt\\2;
//最好判断路径,避免不必要的时间
int isValid = _access_s(prefixPath.c_str(), 0);
if (0 != isValid)//路径是否存在
{
CreateDir(prefixPath);
}
}