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;
}