码迷,mamicode.com
首页 > 其他好文 > 详细

使用FindFirstFile,FindNextFile遍历一个文件夹

时间:2016-04-25 19:30:16      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

 1 //遍历文件夹函数
 2 void TraverseFolder(LPCTSTR lpPath)
 3 {
 4     TCHAR szFind[MAX_PATH] = {_T("\0")};
 5     WIN32_FIND_DATA findFileData;
 6     BOOL bRet;
 7  
 8     _tcscpy_s(szFind, MAX_PATH, lpPath);
 9     _tcscat_s(szFind, _T("\\*.*"));     //这里一定要指明通配符,不然不会读取所有文件和目录
10  
11     HANDLE hFind = ::FindFirstFile(szFind, &findFileData);
12     if (INVALID_HANDLE_VALUE == hFind)
13     {
14         return;
15     }
16  
17     //遍历文件夹
18     while (TRUE)
19     {
20         if (findFileData.cFileName[0] != _T(.))
21         {//不是当前路径或者父目录的快捷方式
22             _tprintf(_T("%s\\%s\n"), lpPath, findFileData.cFileName);
23             if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
24             {//这是一个普通目录
25                 //设置下一个将要扫描的文件夹路径
26                 _tcscpy_s(szFind, MAX_PATH, lpPath);    
27                 _tcscat_s(szFind, _T("\\"));    
28                 _tcscat_s(szFind, findFileData.cFileName);
29                 ///_tcscat_s(szNextDir, _T("\\*"));
30                 //遍历该目录
31                 TraverseFolder(szFind);
32             }
33         }
34         //如果是当前路径或者父目录的快捷方式,或者是普通目录,则寻找下一个目录或者文件
35         bRet = ::FindNextFile(hFind, &findFileData);
36         if (!bRet)
37         {//函数调用失败
38             //cout << "FindNextFile failed, error code: " 
39             //  << GetLastError() << endl;
40             break;
41         }
42     }
43  
44     ::FindClose(hFind);
45 }

转载:http://www.cnblogs.com/chenkunyun/archive/2012/03/24/2415727.html

使用FindFirstFile,FindNextFile遍历一个文件夹

标签:

原文地址:http://www.cnblogs.com/chechen/p/5432220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!