代码是网上找的
1.使用C RUNTIME函数
#include <io.h> #include <direct.h> BOOL mkdirEx(const char* lpPath) { CString pathname = lpPath; if(pathname.Right(1) != "\\") pathname += "\\" ; int end = pathname.ReverseFind('\\'); int pt = pathname.Find('\\'); if (pathname[pt-1] == ':') pt = pathname.Find('\\', pt+1); CString path; while(pt != -1 && pt<=end) { path = pathname.Left(pt+1); if(_access(path, 0) == -1) _mkdir(path); pt = pathname.Find('\\', pt+1); } return true; }
2.使用WINDOWSAPI
CString strFolderPath="c:\\test" // 判断路径是否存在 if (!PathIsDirectory(m_strFolderPath) ) { CString strMsg; strMsg.Format ("指定路径\"%s\"不存在,是否创建?", m_strFolderPath); if (AfxMessageBox(strMsg, MB_YESNO) == IDYES) { if (!CreateDirectory(m_strFolderPath, NULL ) ) { strMsg.Format ("创建路径\"%s\"失败!是否继续?", m_strFolderPath); if (AfxMessageBox(strMsg, MB_YESNO) == IDYES) return; } } }
3.判断目录是否存在
if(INVALID_FILE_ATTRIBUTES == GetFileAttributes("log")) { ::CreateDirectory("log", NULL); }