我在程序中要搜索某个盘下的所有目录,我定义了一个WIN32_FIND_DATA,我看MSDN中介绍WIN32_FIND_DATA的dwAttributes属性可以辨别一个目录,请问应该如何操作,是不是把这个WIN32_FIND_DATA的属性值直接和表示目录的那个值进行比较?

解决方案 »

  1.   

    CFileFind find;
    ...
    FindNext()
    ....
      

  2.   

    CFileFind find;
    CString str;
    BOOL bReturn = find.FindFile(NULL,0);
    while(bReturn)
    {
    str = find.GetFilePath();
    //可以加入对这个文件的操作
    bReturn = find.FindNextFile();
    }
      

  3.   


    void Recurse(LPCTSTR pstr)
    {
       CFileFind finder;   // build a string with wildcards
       CString strWildcard(pstr);
       strWildcard += _T("\\*.*");   // start working for files
       BOOL bWorking = finder.FindFile(strWildcard);   while (bWorking)
       {
          bWorking = finder.FindNextFile();      // skip . and .. files; otherwise, we'd
          // recur infinitely!      if (finder.IsDots())
             continue;      // if it's a directory, recursively search it      if (finder.IsDirectory())
          {
             CString str = finder.GetFilePath();
             cout << (LPCTSTR) str << endl;
             Recurse(str);
          }
       }   finder.Close();
    }