BOOL CreateDirectory(
  LPCTSTR lpPathName,                         // directory name
  LPSECURITY_ATTRIBUTES lpSecurityAttributes  
               // Pointer to a SECURITY_ATTRIBUTES structure
);
要判断文件夹是否存在,首先用CFindFile类得到文件(可以判断是否存在),存在的话用IsDirectory判断是否文件夹

解决方案 »

  1.   

    BOOL PathIsDirectory(
        LPCTSTR pszPath
        );//判断一个目录是否存在!
      

  2.   

    bool DirExist(const char *pszDirName)
    {
    WIN32_FIND_DATA fileinfo;
        char _szDir[_MAX_PATH];
        strcpy(_szDir, pszDirName);
        int nLen = strlen(_szDir);
        if( (_szDir[nLen-1] == '\\') || (_szDir[nLen-1] == '/') )
        {
         _szDir[nLen-1] = '\0';
        }
    HANDLE hFind = ::FindFirstFile(_szDir, &fileinfo); if (hFind == INVALID_HANDLE_VALUE)
    {
    return false;
    }
        if( fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
        {
         ::FindClose(hFind);
            return true;
        }
        ::FindClose(hFind);
    return false;
    }// 创建目录,包含子目录,可以创建多级子目录
    bool CreateDir(const char *pszDirName)
    {
    bool bRet = false;
        char  _szDir[_MAX_PATH];
        char  _szTmp[_MAX_DIR];
        int  nLen = 0;
        int  idx ;
    if( (DirExist(pszDirName)) == true )
         return true;
        strcpy(_szDir, pszDirName);
        nLen = strlen(_szDir);
        if( _szDir[nLen-1] == '\\' || _szDir[nLen-1] == '/' )
        {
         _szDir[nLen-1] = '\0';
        }
        nLen = strlen(_szDir);
        memset(_szTmp, 0, _MAX_DIR);
        char  _str[2];
        for(idx = 0; idx < nLen; idx++)
        {
         if(_szDir[idx] != '\\' )
            {
             _str[0] = _szDir[idx];
                _str[1] = 0;
    strcat(_szTmp, _str);
            }
            else
            {
                bRet = ::CreateDirectory(_szTmp, NULL);
                if( bRet )
                {
                 ::SetFileAttributes(_szTmp, FILE_ATTRIBUTE_NORMAL);
                }
             _str[0] = _szDir[idx];
                _str[1] = 0;
    strcat(_szTmp, _str);
            }
            if( idx == nLen-1 )
            {
                bRet = ::CreateDirectory(_szTmp, NULL);
                if( bRet )
                {
                 ::SetFileAttributes(_szTmp, FILE_ATTRIBUTE_NORMAL);
                }
            }
        }
    if( DirExist(_szTmp) )
         return true;
    return false;
    }