C ++は再帰的にフォルダを作成します

 渡されたパラメーターに基づいてディレクトリを再帰的に作成します。

 

機能の説明:

  ディレクトリを再帰的に作成します。 

エントリー:

  作成するディレクトリ。

戻り値:

  作成が成功した場合はTRUEを返し、それ以外の場合はFALSEを返します。

 

1  BOOL CreateDirTree(LPCTSTR lpPath)
 2  {
 3      if((NULL == lpPath)||(0 == _tcslen(lpPath)))
 4      {
 5          return FALSE;
6      }
 7  
8      であれば((TRUE == PathFileExists(lpPath))||(TRUE == PathIsRoot(lpPath)))
 9      {
 10          リターン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      if0 ==_tcscmp(lpPath、szParentpath))
 28      {
 29          return FALSE;
 30      }
 31  
32      if(CreateDirTree(szParentpath))// 前のレイヤーが存在するかルートディレクトリになるまで再帰的に作成
33      {
 34          return CreateDirectory(lpPath、NULL);
 35      }
 36      else 
37      {
 38          falseを返す;
 39      }
 40  
41      trueを返す;
 42 }

 

 

著者:耑にリリースされた新しい新しい、   ブログパーク

転載元を明記してください。メールで連絡してください:[email protected]

おすすめ

転載: www.cnblogs.com/Arthurian/p/12681789.html