使用FindFirstFile,FindNextFile才行,可以查MSDN,有例子程序,也可以在论坛中搜索“遍历”看看。

解决方案 »

  1.   

    这个问题很多人问过。你可以在论坛中找一下,无非是使用FindFirstFile,FindNextFiles,
    遇到目录就用递归,不查到的文件中有".",".."文件夹,注意区分。
      

  2.   

             int nFileExist;
    CFileFind finder;
    CString strDir;

             nFileExist=finder.FindFile(strDir+"\\*.*");
    while(nFileExist)
    {
    nFileExist=finder.FindNextFile();
    //Operation here
    }
      

  3.   

          WIN32_FIND_DATA FindFileData;
          HANDLE hFind;
          hFind = FindFirstFile("C:\\*" , &FindFileData); //指定目录c:\         AfxMessageBox(FindFileData.cFileName);
          if (!(hFind == INVALID_HANDLE_VALUE)) 
          {
              while (FindNextFile(hFind, &FindFileData)) 
              {
                  AfxMessageBox(FindFileData.cFileName);
              }
          }
          FindClose(hFind);  
      

  4.   

    //重贴:      WIN32_FIND_DATA FindFileData;
          HANDLE hFind;
          hFind = FindFirstFile("C:\\*" , &FindFileData); //指定目录c:\        
          AfxMessageBox(FindFileData.cFileName);
          if (!(hFind == INVALID_HANDLE_VALUE)) 
          {
              while (FindNextFile(hFind, &FindFileData)) 
              {
                  AfxMessageBox(FindFileData.cFileName);
              }
          }
          FindClose(hFind);  
      

  5.   

    void CTestDlg::FindAllFileName(LPCSTR strFilePath){    WIN32_FIND_DATA  FindFileData;
        HANDLE hFind=FindFirstFile(strFilePath, &FindFileData);
        if(hFind!=INVALID_HANDLE_VALUE)
        {
            do
            {
                if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
       CString strTemp = FindFileData.cFileName;
       if(strTemp=="." ||strTemp=="..")
       continue;
       strTemp = strTemp+"\\*.*";
                         FindAllFileName(strTemp);
    }
                else
                  {
                  //find one file
         CString strFileName=FindFileData.cFileName;
         //do something
                  }
            }while(FindNextFile(hFind, &FindFileData));
        }
    }
      

  6.   

    落了几句,不好意思
       if(strTemp=="." ||strTemp=="..")
        continue;
       CString strPath=strFilePath;
       strTemp = "\\"+strTemp;
       strTemp = strPath.Left(strPath.GetLength()-3)+strTemp;
       strTemp = strTemp +"\\*.*";
       FindAllFileName(strTemp);