CreateDirectory這個函數(shù)的作用是創(chuàng)建一個新的目錄。如果底層文件系統(tǒng)支持文件和目錄上的安全描述,該功能可將指定的安全描述到新的目錄。
//函數(shù)原型
BOOL CreateDirectory(
LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
參數(shù):
- pPathName:長指針,指向一個空結(jié)束的字符串,該字符串指定要創(chuàng)建的目錄的路徑。有一個默認的字符串大小限制為MAX_PATH字符的路徑。此限制是關(guān)系到這個函數(shù)是如何解析路徑。字符串的長度不超過MAX_PATH。
- lpSecurityAttributes:忽略,一般設(shè)置為NULL。
返回值:
- 非零表示成功,零表示失敗。若想獲得更多的錯誤信息,調(diào)用GetLastError函數(shù)。
備注:
這個函數(shù)不是遞歸的。它可以在一個路徑中創(chuàng)建唯一的最終目錄。也就是說,如果父目錄或中間目錄不存在,該函數(shù)將失敗并顯示錯誤消息ERROR_PATH_NOT_FOUND。
一些文件系統(tǒng),如NTFS文件系統(tǒng),支持壓縮或個別文件和目錄加密。上卷格式化為這樣的文件系統(tǒng),一個新的目錄繼承父目錄的壓縮和加密屬性。
從備注可知,該函數(shù)只能創(chuàng)建一級目錄,當根目錄或者中間目錄不存在時,該函數(shù)將不起作用。所以假如我們要創(chuàng)建二級以上目錄時,應(yīng)該分開來一步步創(chuàng)建。
例如:我們要創(chuàng)建:D:\一級文件夾\二級文件夾\...
CString str = "D:\\一級文件夾";
CreateDirectory(str, NULL);
str += "\\二級文件夾";
CreateDirectory(str, NULL);
以此類推。
在創(chuàng)建新的目錄之前,我們也可以先判斷該目錄是否已經(jīng)存在,例如:
CString str = "D:\\一級文件夾";
if (!PathIsDirectory(str))
{
::CreateDirectory(str, NULL);
}
str += "\\二級文件夾";
if (!PathIsDirectory(str))
{
::CreateDirectory(str, NULL);
}
在調(diào)用PathIsDirectory()函數(shù)時,需要包含以下頭文件與庫函數(shù):
#include "shlwapi.h"
#pragma comment(lib,"shlwapi.lib")
轉(zhuǎn)自:http://blog.csdn.net/ccfxue/article/details/51597403