您的位置:首页 > 编程语言 > C语言/C++

遍历文件夹

2016-06-25 18:54 447 查看
利用windows提供的API函数FindFirstFile()和FindNextFile()就可以很轻松的遍历指定目录文件。

相关实现代码如下:

int FindAllFiles(const CString &strFolderPath)

{

       

       int iRet = 0;

       TCHAR  szFolderPath[MAX_PATH] = {0};

       TCHAR  szFolderRoot[MAX_PATH] = {0};

       WIN32_FIND_DATA      findFileData;

       _tcscpy(szFolderPath,strFolderPath);

       _tcscpy(szFolderRoot,strFolderPath);

       _tcscat(szFolderPath,_T("\\*.*"));

 

       HANDLE hFind = ::FindFirstFile(szFolderPath,&findFileData);

       if (INVALID_HANDLE_VALUE == hFind)

       {

              return -1;

       }

 

       do 

       {

              if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

              {

                     if( (_tcscmp(findFileData.cFileName,_T(".")) != 0 ) &&(_tcscmp(findFileData.cFileName,_T("..")) != 0))  

                     {

                           TCHAR szFile[MAX_PATH] = {0};

                           PathCombine(szFile,szFolderRoot,findFileData.cFileName);

                           FindAllFiles(szFile);

                     }

                     

              }

              else

              {

                     CString strfile = strFolderPath + _T("\\") + findFileData.cFileName;

                     _tprintf(_T("%s\\%s \r\n"),strFolderPath,findFileData.cFileName);

              }

       } while (::FindNextFile(hFind,&findFileData));

 

       FindClose(hFind);

       return iRet;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息