创建文件目录

主要在windows系统下测试使用

1,使用CreateDirectory

创建单级目录



CreateDirectory("C:\\abc", NULL);//使用绝对路径创建文件夹



 



递归创建多级目录



int index, start = 0; 
  
 CString strTmp; 
  
 CString strPath = "E:\\aaa\\bbb\\ccc\\ddd";  
  

 while ( (index = strPath.Find('\\', start)) != -1) { 
  
         strTmp = strPath.Left(index);  
  

         CreateDirectory(strTmp, NULL); 
  

         start = index + 1;       
  
 }


 



2,使用MakeSureDirectoryPathExists



函数功能描述:该函数创建一个从根目录开始的完整的指定路径.

函数原型:
 BOOL MakeSureDirectoryPathExists(PCSTR DirPath);

参数:
DirPath [in] : 指向一个以NULL结尾的包含正确的指定的路径名,如果路径名的结尾部分不是文件名而是文件夹,那么要以'/'为结束符.
返回值:函数成功返回TRUE; 函数失败返回FALSE;要获得具体错误信息用GetLastError();
备注: 每一级目录如果不存在就创建它,如果只有一些目录被创建了,那么函数返回FALSE.

示例代码段:
在用MakeSureDirectoryPathExists前,要在Project->Settings...->Link->/Object/library modules中加入imagehlp.lib.

具体函数如下:
{
  BOOL bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3//");
  //创建目录,要注意结尾"//",否则会失败.
  ASSERT(bRet);
  bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3");
  //创建目录,但不创建Directory3,因为没有'//'结尾.
    ASSERT(bRet);
      bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3//test.txt");
      //创建目录,但不创建文件,可以不用'//'结尾.
      ASSERT(bRet);
}
注意包含头文件及相应库文件
头文件: 在Dbghelp.h中定义.
静态库: Dbghelp.lib.

 



3,使用windows下的bat脚本函数 mkdir



system("mkdir  \"E:\\aaa\\bbb\\ccc\\ddd\"");


函数功能描述:该函数创建一个从根目录开始的完整的指定路径.

函数原型:
 BOOL MakeSureDirectoryPathExists(PCSTR DirPath);

参数:
DirPath [in] : 指向一个以NULL结尾的包含正确的指定的路径名,如果路径名的结尾部分不是文件名而是文件夹,那么要以'/'为结束符.
返回值:函数成功返回TRUE; 函数失败返回FALSE;要获得具体错误信息用GetLastError();
备注: 每一级目录如果不存在就创建它,如果只有一些目录被创建了,那么函数返回FALSE.

示例代码段:
在用MakeSureDirectoryPathExists前,要在Project->Settings...->Link->/Object/library modules中加入imagehlp.lib.

具体函数如下:
{
  BOOL bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3//");
  //创建目录,要注意结尾"//",否则会失败.
  ASSERT(bRet);
  bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3");
  //创建目录,但不创建Directory3,因为没有'//'结尾.
    ASSERT(bRet);
      bRet=MakeSureDirectoryPathExists("f://Directory1//Directory2//Directory3//test.txt");
      //创建目录,但不创建文件,可以不用'//'结尾.
      ASSERT(bRet);
}
注意包含头文件及相应库文件
头文件: 在Dbghelp.h中定义.
静态库: Dbghelp.lib.