使用 system() 调用 dos 命令
#include <iostream>
using namespace std;
int main()
{
string folderPath = "E:\\database\\testFolder";
string command;
command = "mkdir -p " + folderPath;
system(command.c_str());
return 0;
}
使用头文件 direct.h 中的 access 和 mkdir 函数
关于 direct.h 我觉得 维基百科 上介绍的不错
#include <direct.h>
#include <iostream>
using namespace std;
int main()
{
string folderPath = "E:\\database\\testFolder";
if (0 != access(folderPath.c_str(), 0))
{
// if this folder not exist, create a new one.
mkdir(folderPath.c_str()); // 返回 0 表示创建成功,-1 表示失败
//换成 ::_mkdir ::_access 也行,不知道什么意思
}
return 0;
}
调用 Windows API 函数
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
string folderPath = "E:\\database\\testFolder";
if (!GetFileAttributesA(folderPath.c_str()) & FILE_ATTRIBUTE_DIRECTORY) {
bool flag = CreateDirectory(folderPath.c_str(), NULL);
// flag 为 true 说明创建成功
} else {
cout<<"Directory already exists."<<endl;
}
return 0;
}
调用 MFC 封装好的接口函数
不推荐此方法,出错的话会有点麻烦。
#include <iostream>
#include <shlwapi.h>
using namespace std;
int main()
{
string folderPath = "E:\\database\\testFolder";
if (!PathIsDirectory(folderPath.c_str())) // 是否有重名文件夹
{
::CreateDirectory(folderPath.c_str(), 0);
}
return 0;
}