c++創建多級目錄

c++創建多級目錄實現:

BOOL CCommonFunctions::CreateDirectories(const TCHAR *strPathName,BOOL blFile)
{
    CString pathName = strPathName;

    //不是以"\"結尾的目錄則添加"\"
    if(pathName.Right(1) != _T("\\") && !blFile)
    {
        pathName += _T("\\");
    }

    int end = pathName.ReverseFind('\\');
    int pt = pathName.Find('\\');

    if(pt > 0 && pathName[pt - 1] == ':')
    {
        pt = pathName.Find('\\', pt + 1);
    }
    else if(pathName[pt + 1] == '\\')
    {
        pt = pathName.Find('\\', pt + 2);
        pt = pathName.Find('\\', pt + 1);
    }

    CString path;
    while(pt != -1 && pt <= end)
    {
        path = pathName.Left(pt + 1);

        SetFileAttributes(path,FILE_ATTRIBUTE_NORMAL);
        if(!IsFolderExist(path))
        {
            //創建某級目錄失敗
            if(!CreateDirectory(path, NULL))
            {
                return FALSE;
            }
        }

        pt = pathName.Find('\\', pt + 1);
    }

    return TRUE;
}
發佈了31 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章