FindFirstFile和FindNextFile遍历文件夹API以及递归核心逻辑
#include <stdio.h>
#include <Windows.h>
DWORD dwTotalFileNum;
DWORD EnumerateFileInDirectory(LPTSTR szPath){
//FindFirstFile();
//FindNextFile();
//WIN32_FIND_DATA结构体
WIN32_FIND_DATAA FindFileData;
HANDLE handel;
TCHAR szFilePath;
TCHAR szFullPath;
lstrcpy(szFilePath,szPath);
lstrcat(szFilePath,TEXT("\\*"));//给传入的文件夹路径追加通配符
handel=FindFirstFile(szFilePath,&FindFileData);
if(handel==INVALID_HANDLE_VALUE){
printf("读取错误");
return 1;
}else{
do{
if(lstrcmp(FindFileData.cFileName,".")==0 || lstrcmp(FindFileData.cFileName,"..")==0){
continue;
}
wsprintf(szFullPath,"%s\\%s",szPath,FindFileData.cFileName); //构造文件全路径
dwTotalFileNum++;
printf("\n%d\t%s\t",dwTotalFileNum,szFullPath); //打印文件全路径
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){//如果是文件夹就递归
printf("<IDR>");
EnumerateFileInDirectory(szFullPath);
}
//printf("文件名%s\t\t",FindFileData.cFileName);
//if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED){
//printf("<加密文件>");
//}
//if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN){
//printf("<隐藏文件>");
//}
}while(FindNextFile(handel,&FindFileData));
}
return 0;
}
int main(){
EnumerateFileInDirectory(TEXT("C:\\Windows"));
printf("\n");
system("pause");
return 0;
}
努力也 真是:贴好贴好的贴一篇好贴一篇极品贴一篇挺好的贴一篇非常好的贴一篇让人叫好的贴一篇非常不错的好贴一篇地球中最好的好贴一篇地球中绝世无双的贴 很不错的,值得深思! 不错! 我不是计算机系的,但是也想从事程序员之类的工作,今年找工作,遇到种种挫折,今天读到这篇文章,受益匪浅啊!非常感谢,值得深思! 看完后除了感慨还是感慨啊谢谢楼主给我这么好的文章看我很受益中国的程序员都要努力啊~而且点明了我今后的目标真的很谢谢 不错,真的不错,很受感悟,让计算机执行更少的指令完成更多的工作,才是我所愿~ 经历过的是最有价值的能让它与别人分享更好 果然必读!!