mkdir函数只能在已存在的目录下建立一级子目录,如果有如此路径: C:\Documents \test\data,直接创建此目录是不能完成的,需要逐级进行创建。
如下:
假设szPath="<span style="font-size: 24px; text-align: justify;">C:\Documents \test\data"</span>
int CreateMultiPath(char* szPath)
{
char szFilePath[MAX_FILEPATH_LEN];
int k = 0;
char szBuf[MAX_FILEPATH_LEN];
strcpy(szBuf, szPath);
int i = strlen(szBuf);
for(int j = 0; j<i; j++)
{
if(szBuf[j] == '\\' || szBuf[j] == '/')
{
k = j;
strncpy(szFilePath, szBuf, k);
szFilePath[k] = '\0';
if((_access(szFilePath, 0)) == -1)
{
if(mkdir(szFilePath) == -1)
return -1;
}
}
}
if (k == 0) // 非法目录
{
return -1;
}
return 0;
}