遍历文件夹下所有文件和文件夹

    xiaoxiao2021-04-15  50

    1 void find(char * lpPath) {   char szFind[MAX_PATH];   WIN32_FIND_DATA FindFileData;   strcpy(szFind,lpPath);   strcat(szFind,"*.*");   HANDLEhFind=::FindFirstFile(szFind,&FindFileData);   if(INVALID_HANDLE_VALUE == hFind)  return;   while(TRUE)   {     if(FindFileData.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)     {       if(FindFileData.cFileName[0]!='.')       {         strcpy(szFile,lpPath);         strcat(szFile,"");         strcat(szFile,FindFileData.cFileName);         find(szFile);       }     }     else     {       cout <<FindFileData.cFileName;     }     if(!FindNextFile(hFind,&FindFileData))  break;   }   FindClose(hFind); } 2.利用CFileFind类较简洁的实现该功能 void CModelDlg::FindBmpFile(CString strFoldername) {       CStringm_cstrFileList="";       CFileFindtempFind;       BOOL bFound;//判断是否成功找到文件       bFound=tempFind.FindFile(strFoldername    +    "\\*.*");    /修改""内内容给限定查找文件类型       CStringstrTmp;    //如果找到的是文件夹存放文件夹路径       while(bFound)          //遍历所有文件       {               bFound=tempFind.FindNextFile();//第一次执行FindNextFile是选择到第一个文件,以后执行为选择                                                                                   //到下一个文件                     if(!tempFind.IsDots()) continue; //如果找到的是返回上层的目录 则结束本次查找                       if(tempFind.IsDirectory())    //找到的是文件夹,则遍历该文件夹下的文件                     {                               strTmp="";                               strTmp=tempFind.GetFilePath();                               FindFile(strTmp);                       }                       else                       {                               strTmp=tempFind.GetFileName(); //保存文件名,包括后缀名                                 // 在此处添加对找到文件的处理                       }       }       tempFind.Close();       return; }
    转载请注明原文地址: https://ju.6miu.com/read-671181.html

    最新回复(0)