Linux下用C創建多級目錄


    #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++編譯“。

*/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM