1. 程式人生 > >根據目錄路徑遞迴建立目錄

根據目錄路徑遞迴建立目錄

問題描述:

給定一個目錄路徑,如果該路徑不存在則創建出來。

參考程式碼:

void CorrectPath(CString& strPath)
{
    strPath.Replace(_T('/'), _T('\\'));

    do 
    {
        if (strPath.Find(_T("\\\\")) == -1)
            break;

        strPath.Replace(_T("\\\\"), _T("\\"));

    } while (true);
}

void PathRemoveFileSpec(CString& strPath)
{
    CorrectPath(strPath);

    int nPos = strPath.ReverseFind(_T
('\\')); if (nPos == -1) { strPath.Empty(); } else { strPath = strPath.Left(nPos); } } BOOL CreateDeepDirectory(LPCTSTR szPath) { BOOL bRetCode = FALSE; CString strPath(szPath); if (GetFileAttributes(szPath) != INVALID_FILE_ATTRIBUTES) return
TRUE; bRetCode = ::CreateDirectory(szPath, NULL); if (!bRetCode && ::GetLastError() != ERROR_ALREADY_EXISTS) { PathRemoveFileSpec(strPath); if (strPath.IsEmpty()) return FALSE; bRetCode = CreateDeepDirectory(strPath); if (!bRetCode) return FALSE
; bRetCode = ::CreateDirectory(szPath, NULL); if (!bRetCode && ::GetLastError() != ERROR_ALREADY_EXISTS) return FALSE; } return TRUE; } int _tmain(int argc, _TCHAR* argv[]) { CreateDeepDirectory(L"C:\\abc\\def\\"); return 0; }