请问用CFileFind类如何搜索一个文件夹下的子文件夹??
因为文件夹的名字也可以含有“.”。

解决方案 »

  1.   

    Copy自Programming windows with MFC(II)void EnumerateFolders ()
    {
        WIN32_FIND_DATA fd;
        HANDLE hFind = ::FindFirstFile (_T ("*.*"), &fd);    if (hFind != INVALID_HANDLE_VALUE) {
            do {
                if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
                    CString name = fd.cFileName;
                    if (name != _T (".") && name != _T ("..")) {
                        TRACE (_T ("%s\n"), fd.cFileName);
                        ::SetCurrentDirectory (fd.cFileName);
                        EnumerateFolders ();
                        ::SetCurrentDirectory (_T (".."));
                    }
                }
            } while (::FindNextFile (hFind, &fd));
            ::FindClose (hFind);
        }
    }
      

  2.   

    CFileFind   tempFind;
    CString path="d:\\temp\\*.*";
    CString strFileName; BOOL bIsFinded =(BOOL)tempFind.FindFile(path);
    while(bIsFinded)
    {
    bIsFinded = (BOOL)tempFind.FindNextFile();
    if( !tempFind.IsDots() ) 
    {
    if(tempFind.IsDirectory())
    {
    strFileName = tempFind.GetFileName();
    }
    }
    }
    tempFind.Close();