Windows 遍曆檔案夾下所有檔案和檔案夾

來源:互聯網
上載者:User

1.使用網上最普通的方法

find(char * lpPath)
{
  char szFind[MAX_PATH];
  WIN32_FIND_DATA FindFileData;
  strcpy(szFind,lpPath);
  strcat(szFind,"*.*");
  HANDLE hFind=::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)<?XML:NAMESPACE PREFIX = O />

{

    CString m_cstrFileList="";

    CFileFind tempFind;

    BOOL bFound; //判斷是否成功找到檔案

    bFound=tempFind.FindFile(strFoldername   +   "\\*.*");   /修改" "內內容給限定尋找檔案類型

    CString strTmp;   //如果找到的是檔案夾 存放檔案夾路徑

    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;

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.