渡されたパラメーターに基づいてディレクトリを再帰的に作成します。
機能の説明:
ディレクトリを再帰的に作成します。
エントリー:
作成するディレクトリ。
戻り値:
作成が成功した場合は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 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 falseを返す; 39 } 40 41 trueを返す; 42 }
著者:耑にリリースされた新しい新しい、 ブログパーク
転載元を明記してください。メールで連絡してください:[email protected]