收录日期:2020/06/01 03:06:25 时间:2016/07/16 21:39:58 标签:基础类
    当需对某个文件进行读写时,先判断此是否存在此目录,如(c:\data),如果不存就创建此目录,如果存在此目录,直接创建文件或读写文件,如何实现对目录的判断和创建,请各位指教!
使用CreateDirectory(目录路径,NULL),若返回值为0且再使用GetLastError,返回值为ERROR_ALREADY_EXISTS时说明目录已存在;否则就创建目录
CreateDirectory,注意不能创建多级目录。

BOOL WINAPI CreateDirectory(
  __in_opt  LPCTSTR lpPathName,
  __in      LPSECURITY_ATTRIBUTES lpSecurityAttributes
);



USES_CONVERSION;
CreateDirectory(A2W(this->strDatFolder.c_str()),NULL);
如果要多级目录判断呢,如d:\data\data1\data2,如果此目录路径不存在的话,如果创建多级目录?
请高手给一个例子,多谢!
_findfirst查找目录是否存在
有没有MFC的例子?
MFC调API就好了呀
用MD啊,可以创建多级目录,比如system("md c:\1\2\3")就可以在C盘下创建一个三级目录!
原来还要判断啊,你可以这样

程序如下:   
  CString   filePath   =   "c:\\1\\2\\3";   
  DWORD   dwAttr   =   GetFileAttributes(filePath);   
  if(dwAttr==-1||(dwAttr&FILE_ATTRIBUTE_DIRECTORY)==0)//目录不存在   
  {   
  system("md c:\1\2\3")  //注意,这里是单斜杠
  }   
  }   
就给你偷个懒吧
/*==========================================================================*/
/* 创建文件夹夹
/*==========================================================================*/
int CCommonData::mkDir(CString path)
{
//CString cmd = "cmd /C md \""+path+"\"";
//WinExec(cmd, SW_HIDE);
path.TrimLeft();
path.TrimRight();
if(path.IsEmpty())
{
return FALSE;
}
int start = 0, pos = 0, len = path.GetLength();
CString dir;
while(start<len)
{
int pos = path.Find('\\', start);
if(-1==pos)
{
dir = path;
}
else
{
dir = path.Left(pos);
}

if(!DirectoryExist(dir))
{
if(!CreateDirectory(dir, NULL))
{
return FALSE;
}
}

if(pos == -1)
{
return TRUE;
}

start = pos + 1;
}

return TRUE;
}
BOOL CMyDlg::FolderExist(CString strPath)
{
WIN32_FIND_DATA   wfd;
BOOL rValue = FALSE;
HANDLE hFind = FindFirstFile(strPath, &wfd);
if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
rValue = TRUE;   
}
FindClose(hFind);
return rValue;
}

BOOL CMyDlg::CreateFolder(CString strPath)
{
SECURITY_ATTRIBUTES attrib;
attrib.bInheritHandle = FALSE;
attrib.lpSecurityDescriptor = NULL;
attrib.nLength = sizeof(SECURITY_ATTRIBUTES);

return ::CreateDirectory(strPath, &attrib);

关于winexec的两个问题 如何使TImage控件选中后有暗淡效果 phoenixdyy对nosleep的指控:nosleep有严重同性恋倾向,先骚扰lemonade,后骚扰我 告别一下斑竹吧 向请教高手 怎样取得有焦点的对象的类型及名称? 谁能告诉我为什么我的TURBO C 2.0在运行的时候告诉我 float point format not link!我给50分,快呀 高手,救救我吧! 大家来讨论一下如何在delphi中用flash制作的动态菜单,按钮?(注意,不是播放FLASH动画) 主  题:软件工程到底做什么 介绍有销售移动梦网,短消息系统的公司,要求是成熟的商业软件。 亲爱的同志们,高手们,帮帮我吧!用Directx SDK中的什么东西可以将3D MAX的模型转换成C语言啊? 如何将WORD及EXCLE文档保存到SQL的数据库中。 介绍有销售移动梦网短消息系统的公司,要求是成熟的商业软件。 谁介绍有销售移动梦网,短消息系统的公司,要求是成熟的商业软件。 今日奖学金! 这100分只属于第一位回贴人! 请问各位:一个人到了27岁开始学习编程,还能不能学好? 这200分只属于第二位回贴人 ... 1介绍有销售移动梦网,短消息系统的公司,要求是成熟的商业软件。 这300分只属于第三位回贴人 ... 关于如何在论坛里提问题...... 如何让OLE文挡的打印按钮起作用? 建议:希望能够强制发帖子的标题明确且有意义,如果违反,版主可以马上删除。 请问高手! 在vc下打开一*.exe或*.dll文件进行资源编辑,出现以下的错误! 如何用最简单的代码实现MouseExit功能? 心烦,灌水,没分 求救!!!怎样获取word的各项属性?? 急!!我收到的一封邮件全是英文加数字的乱码,有什么好的办法把它读出来啊?