收录日期:2019/11/19 15:16:21 时间: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);

我想在对话框的菜单中相应ON_UPDATE_COMMADN_UI 的消息响应函数来增加一个选中标记,但是不知为什么会无效......... 请问如果要在同一个OS中安装两个oracle应该如何做? 请问向文本域中插图的代码? 用脚本获得的DataLIst怎么它添加一个Table数据 它是传说中的航母克星?????? 获取磁盘上所有的文件名? j2mepolish 运行出错 Unable to compile source code for device ****100分急求UDP分包传输文件代码****** 在单文档中添加了一个对话框并生成一个类CDLG,要在CDLG里面的一个函数里触发View重绘,要怎样做? 时间分段查询 请问向文本域中即时插图问题? Struts中ActionForm的问题 关于display的结果······························ 大家都用什么工具做PHP数据模型的持久层阿 谁能给一个数字算法,要求用计算机验证的速度很快,但求解的过程很慢. 一个男人一生起码要挣多少钱 数字证书怎么在webseal中使用 求 汉字转拼音函数(要完整版) 请问,8279键盘显示设计 如何做 为什么改变 了 web.xml 文件 所有的 jsp 文件 运行 都出现 404错误?? 帮忙看一下这句话怎么翻译?谢谢! 文件读取 求一个开源的Blog JSP的 一个有关while循环的问题 数据库的增删改查操作数据慢,都有哪些原因? 在asp.net页面中把数据导出到excel,如果电脑上装有迅雷,会下载页面的源码。请问如何屏蔽? C#读取EXCEL,如果某数字列前9行都为空,则该列所有值读出来都是空 请问JDBC连接数据库之后为什么不能更改SQL语句了? 请过来人解惑 C#怎么在对话框中使用图标