在vc2005中
我想输入“abc\bcd”,在根目录下创建abc文件夹,再在abc文件夹下创建bcd文件夹,我该如何做啊?
我用CreateDirectory(“abc\bcd”,NULL),不能用阿!

解决方案 »

  1.   

    挨着创建,如:
    CreateDirectory(“C:\\abc”,NULL),先创建abc
    CreateDirectory(“C:\\abc\\bcd”,NULL)再创建bcd
      

  2.   

    使用相对路径时,要确认当前的工作路径是否正确(GetCurrentDirectory可以获得当前路径);如果不对就要使用绝对路径了。
      

  3.   

    我的应用环境是pda,没有c盘之分的
      

  4.   

    CreateDirectory(“C:\\abc”,NULL),先创建abc
    CreateDirectory(“C:\\abc\\bcd”,NULL)再创建bcd
      

  5.   

    检查文件是否存在
    BOOL FileExist(TCHAR *strFile)
    {
        return (INVALID_FILE_ATTRIBUTES != GetFileAttributes(strFile));
    }
      

  6.   

    to robin_yao(认真) :这是判断文件是否存在,我的问题是文件夹是否存在阿?
      

  7.   

    BOOL PathIsDirectory(
        LPCTSTR pszPath
        );
      

  8.   

    #include <shlwapi.h>
    #pragma comment(lib,"shlwapi.lib")BOOL bExgist = PathIsDirectory("C:\\CSDN");
      

  9.   

    BOOL CreateDirectory(
      LPCTSTR lpPathName,                         // pointer to directory path string
      LPSECURITY_ATTRIBUTES lpSecurityAttributes  // pointer to security descriptor
    );
      

  10.   

    在vc2005中,没有这个PathIsDirectory阿
      

  11.   

    //验证目录是否存在,如果不存在则创建
    BOOL CSetup::DirIsExists(LPCTSTR lpDirectory)
    {
    CString strDir; //完整的路径
    CString CurrentDir; //最后的子目录
    CString strTemp;
    CFileFind cff; //文件查找对象
    int pos; //'\\'字符的位置
    BOOL isDriver=FALSE; //是否盘符 //如果最后的字符为'\\',则删掉它
    strDir.Format("%s",lpDirectory);
    if(strDir.GetAt(strDir.GetAllocLength()-1)=='\\')
    {
    if(strDir.GetAt(strDir.GetAllocLength()-2)==':')
    return TRUE; //给出的路径是盘符根目录
    strDir.Delete(strDir.GetAllocLength()-1);
    } //找到上一个'\\'字符,判断上一个'\\'字符之前是否盘符
    //同时得到最后的子目录
    for(pos=strDir.GetLength()-1;pos>=0;pos--)
    {
    if(strDir.GetAt(pos)=='\\')
    break;
    strTemp.Format("%c",(char)strDir.GetAt(pos));
    CurrentDir=strTemp+CurrentDir;
    }
    if(strDir.GetAt(pos-1)==':')
    isDriver=TRUE; //判断当前目录是否存在
    if(cff.FindFile(strDir))
    return TRUE;
    else
    {
    if(isDriver==TRUE) //在盘符根目录下创建目录的情况
    {
    //创建目录
    if(SetCurrentDirectory(strDir.Left(pos)+"\\"))
    CreateDirectory(CurrentDir,NULL);
    else
    return FALSE; //设置当前路径失败 return TRUE;
    } if(DirIsExists(strDir.Left(pos)))
    {
    //创建目录
    if(SetCurrentDirectory(strDir.Left(pos)))
    CreateDirectory(CurrentDir,NULL);
    else
    return FALSE; //设置当前路径失败 return TRUE;
    }
    return FALSE;
    } return TRUE;
    }
      

  12.   

    如果想知道详细点的情况,可以修改各个返回值,把函数的返回值设为int即可。