C++遞歸創建文件夾


 根據傳入的參數遞歸進行目錄的創建。

 

函數描述:

  遞歸創建目錄。 

入參:

  所要創建的目錄。

返回值:

  創建成功,返回TRUE;否則返回FALSE。

 

 1 BOOL CreateDirTree(LPCTSTR lpPath)
 2 {
 3     if( (NULL == lpPath) || (0 == _tcslen(lpPath)))
 4     {
 5         return FALSE;
 6     }
 7 
 8     if((TRUE == PathFileExists(lpPath)) || (TRUE == PathIsRoot(lpPath)) )
 9     {
10         return TRUE;
11     }
12     TCHAR szParentpath[MAX_PATH] = _T("");
13     _tcscpy_s( szParentpath, _countof(szParentpath), lpPath);
14 
15     TCHAR *pTmp = PathRemoveBackslash(szParentpath );//去除路徑最后的反斜杠
16     if (NULL == pTmp)
17     {
18         return FALSE;
19     }
20 
21     BOOL bRet = PathRemoveFileSpec(szParentpath );//將路徑末尾的文件名或文件夾和反斜杠去掉
22     if (FALSE == bRet)
23     {
24         MyOutputDebugMsg(_T("%s %d PathRemoveFileSpec Failed"), __TFILE__, __LINE__);
25     }
26 
27     if(0 == _tcscmp(lpPath, szParentpath))
28     {
29         return FALSE;
30     }
31 
32     if(CreateDirTree(szParentpath))//遞歸創建直到上一層存在或是根目錄
33     {
34         return CreateDirectory(lpPath, NULL);
35     }
36     else
37     {
38         return FALSE;
39     }
40 }   

 

 

作者:耑新新,發布於  博客園

轉載請注明出處,歡迎郵件交流:zhuanxinxin@aliyun.com

 


免責聲明!

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



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