#include <stdio.h>
#include <string.h>
#include <unistd.h> //access()
#include <sys/stat.h>
//創建多級目錄
int createMultiLevelDir(char* sPathName)
{
char DirName[256];
int i, len;
strcpy(DirName, sPathName);
len = strlen(DirName);
if('/' != DirName[len-1]) {
strcat(DirName, "/");
len++;
}
for(i=1; i<len; i++)
{
if('/' == DirName[i])
{
DirName[i] = '\0';
if(access(DirName, F_OK) != 0)
{
if(mkdir(DirName, 0777) == -1)
{
perror("mkdir() failed!");
return -1;
}
}
DirName[i] = '/';
}
}
return 0;
}
int main()
{
char multi_level_dir[256] = "/home/w/ww/www/wwww";
if(-1 == createMultiLevelDir(multi_level_dir)) {
perror("CreateMultiLevelDir() failed!");
return -1;
}
printf("directroy \"%s\" created sucessfully!\n", multi_level_dir);
return 0;
}
/*
當把源文件保存為createMultiLevelDir.cpp用gcc編譯時出現__gxx_personality_v0編譯錯誤:
是由於源代碼的文件后綴名和代碼的語法不相符合"比如用C的語法的文件,選擇了cpp這樣的后綴名,而且還用gcc而不是g++編譯“。
*/
