CreateDirectory创建路径

c++/MFC

Posted by YiMiTuMi on October 10, 2020

CreateDirectory创建路径

CreateDirectory可以用来创建路径,但是这个函数不是递归的。它可以在一个路径中创建唯一的最终目录。也就是说,如果父目录或中间目录不存在,该函数将失败并显示错误消息ERROR_PATH_NOT_FOUND

依次创建文件路径:

void CreateClientFileBackUpPath(CString strFileBackUpPath)
{	
	if (strFileBackUpPath.IsEmpty())
	{
		return;
	}

	vector<CString> vecFilePath;
	for (int i = 0; i != strFileBackUpPath.GetLength(); i++)
	{
		CString strSuperiorFileClinetPath;
		if (strFileBackUpPath[i] == '\\')
		{
			strSuperiorFileClinetPath = strFileBackUpPath.Mid(0, i);
			vecFilePath.push_back(strSuperiorFileClinetPath);
		}
	}

	if (vecFilePath.empty())
	{
		return;
	}

	vector<CString>::iterator iterVec = vecFilePath.begin();
	for (; iterVec != vecFilePath.end(); iterVec++)
	{
		if (PathFileExistsW(*iterVec))
		{
			continue;
		}

		CreateDirectoryW((*iterVec).GetString(), NULL);
	}
}

Ps: 当前函数参数没做处理,必须以“\”结尾的路径才能创建成功:

CString strFileBackUpPath = L"C:\\TempPath\\";  //成功
CString strFileBackUpPath1 = L"C:\\TempPath";  //失败

蝴蝶花 – 相信就是幸福