MFC用CreateDirectory建立檔案目錄
阿新 • • 發佈:2018-12-24
CreateDirectory這個函式的作用是建立一個新的目錄。如果底層檔案系統支援檔案和目錄上的安全描述,該功能可將指定的安全描述到新的目錄。
函式原型:
BOOL CreateDirectory(
LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
引數:
pPathName:長指標,指向一個空結束的字串,該字串指定要建立的目錄的路徑。有一個預設的字串大小限制為MAX_PATH字元的路徑。此限制是關係到這個函式是如何解析路徑。字串的長度不超過MAX_PATH。
lpSecurityAttributes:忽略,一般設定為NULL。
返回值:
非零表示成功,零表示失敗。若想獲得更多的錯誤資訊,呼叫GetLastError函式。
備註:
這個函式不是遞迴的。它可以在一個路徑中建立唯一的最終目錄。也就是說,如果父目錄或中間目錄不存在,該函式將失敗並顯示錯誤訊息ERROR_PATH_NOT_FOUND。
一些檔案系統,如NTFS檔案系統,支援壓縮或個別檔案和目錄加密。上卷格式化為這樣的檔案系統,一個新的目錄繼承父目錄的壓縮和加密屬性。
--->>>
從備註可知,該函式只能建立一級目錄,當根目錄或者中間目錄不存在時,該函式將不起作用。所以假如我們要建立二級以上目錄時,應該分開來一步步建立。
例如:我們要建立:D:\\一級資料夾\\二級資料夾\\...
CString str = "D:\\一級資料夾";
CreateDirectory(str, NULL);
str += "\\二級資料夾";
CreateDirectory(str, NULL);
以此類推。
在建立新的目錄之前,我們也可以先判斷該目錄是否已經存在,例如:
在呼叫PathIsDirectory()函式時,需要包含以下標頭檔案與庫函式:CString str = "D:\\一級資料夾"; if (!PathIsDirectory(str)) { ::CreateDirectory(str, NULL);//建立目錄,已有的話不影響 } str += "\\二級資料夾"; if (!PathIsDirectory(str)) { ::CreateDirectory(str, NULL);//建立目錄,已有的話不影響 }
#include "shlwapi.h"
#pragma comment(lib,"shlwapi.lib")