#include<stdio.h>
#include<windows.h>
DWORD EnumerateFileInDirectory(LPCWSTR szPath){
WIN32_FIND_DATA FindFileData;
HANDLE hListFile;
wchar_t szFilePath[MAX_PATH];
wchar_t szFullPath[MAX_PATH]; //绝对路径
lstrcpy(szFilePath, szPath);
lstrcat(szFilePath, L"\*");
hListFile = FindFirstFile(szFilePath, &FindFileData);
if(hListFile == INVALID_HANDLE_VALUE){
printf("错误:%d
", GetLastError());
return 1;
}else {
do {
if (lstrcmp(FindFileData.cFileName, L".") == 0 || lstrcmp(FindFileData.cFileName, L"..") == 0){
continue;
}
wsprintf(szFullPath, L"%ls\%ls", szPath, FindFileData.cFileName);
//printf("%ls\%ls", szPath, FindFileData.cFileName);
printf("
%ls ", szFullPath);
//if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) { //判断文件的属性是否为隐藏,如果是的话 输出个前缀为HIDDEN
// printf("<HIDDEN> ");
//}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { //判断是否是目录,如果是的话 输出个前缀为DIR
printf(" <DIR>");
EnumerateFileInDirectory(szFullPath);
}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
printf(" <FILE>");
}
//printf("
");
} while (FindNextFile(hListFile, &FindFileData));
}
printf("
");
return 0;
}
int main() {
/*
* API
* FindFirstFile
* FindNextFile
* WIN32_FIND_DATA
*/
EnumerateFileInDirectory(L"C:\Users\dell\source\repos\msgboxtest");
system("pause");
return 0;
}
结果如下: