#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[MAX_PATH];
TCHAR szFullPath[MAX_PATH];
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;
}
|