CreateDirectory遞歸創建多級目錄

目的:實現用CreateDirectory創建多級目錄

1.引入靜態庫

#include "shlwapi.h"

#pragma comment(lib,"shlwapi.lib")

2.函數


const wchar_t* wcstrrchr(const wchar_t* str, const wchar_t wc)  
{  
    const wchar_t* pwc = NULL;  
    for (int i=wcslen(str)-1;i>=0;i--)  
    {  
        if (str[i] == wc)  
        {  
            pwc = str + i;  
            break;  
        }  
    }  
    return pwc;  
}  

bool createMultiDir(const wchar_t* path)  
{  
    if (path == NULL) return false;  
    const wchar_t* pwcStrrchr = wcstrrchr(path,L'\\');  
    if (!pwcStrrchr) return false;  
    if (PathIsDirectory(path)) return true;  

    wchar_t wsSubPath[MAX_PATH] = {};  
    memset(wsSubPath,0,sizeof(wsSubPath));  
    for (int i=0; i<pwcStrrchr-path; i++)  
        wsSubPath[i] = *(path+i);  
    createMultiDir(wsSubPath);  
    if(CreateDirectory(path,NULL)) return true;  
    return false;  
}  

3.調用案例

createMultiDir(L"d:\\whish\\test\\好孩子\\寶馬\\測試.txt"); //絕對路徑
createMultiDir(L".\\whish\\test\\好孩子\\寶馬\\測試.txt");//相對路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章