如下
int CreatePath(const char *path)
{
char *tpath = new char[MAX_PATH];
memset(tpath,0,MAX_PATH);
if (NULL == GetCurrentDirectory(MAX_PATH,tpath))
{
return -1;
}
std::string sPath(tpath);
strcpy(tpath,path);
std::list<std::string> dirarray;
char *tdir = strtok(tpath,"\\");
if (NULL == tdir)
{
return -1;
}
while (NULL!=tdir)
{
dirarray.push_back(tdir);
tdir = strtok(NULL,"\\");
}
std::list<std::string>::iterator pDir = dirarray.begin();
for (;pDir != dirarray.end();++pDir )
{
if (NULL == pDir->compare("."))
{
continue;
}
if (std::string::npos != pDir->find(":"))
{
sPath.clear();
sPath = *pDir;
continue;
}
sPath += "\\" + *pDir;
if (_access(sPath.c_str(),0)!=0) //not exist
{
::CreateDirectory(sPath.c_str(),NULL);
}
}
return 1;
}