显示指定目录下的文件
代码
#include <Windows.h>
#include <stdio.h>
DWORD EnumerateFileDirectory(PCTSTR szPath) {
WIN32_FIND_DATA FindFileData;
HANDLE hListFile;
TCHAR szFilePath[MAX_PATH];
lstrcpy(szFilePath, szPath);
lstrcat(szFilePath, TEXT("\\*"));
hListFile = FindFirstFile(szFilePath, &FindFileData);
if (hListFile == INVALID_HANDLE_VALUE) {
printf("错误: %d\n", GetLastError());
return 1;
}
else {
do {
wprintf(L"%s\t\t", FindFileData.cFileName);
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED) {
printf("加密的文件");
}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
printf("隐藏的文件");
}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
printf("<DIR>");
}
printf("\n");
} while (FindNextFile(hListFile, &FindFileData));
}
return 0;
}
int main() {
EnumerateFileDirectory(TEXT("C:\\Users\\win10\\source\\repos\\Project11"));
return 0;
}
运行效果

递归显示指定目录下的所有文件
代码
#include <Windows.h>
#include <stdio.h>
DWORD dwTotalFileNum = 0;
DWORD ListAllFileInDirectory(PCTSTR szPath) {
WIN32_FIND_DATA FindFileData;
HANDLE hListFile;
TCHAR szFilePath[MAX_PATH];
TCHAR szFullPath[MAX_PATH];
lstrcpy(szFilePath, szPath);
lstrcat(szFilePath, TEXT("\\*"));
hListFile = FindFirstFile(szFilePath, &FindFileData);
if (hListFile == INVALID_HANDLE_VALUE) {
printf("错误:%d\n", GetLastError());
return 1;
}
else {
do
{
if (lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName, TEXT("..")) == 0) {
continue;
}
wsprintf(szFullPath, L"%s\\%s", szPath, FindFileData.cFileName);
dwTotalFileNum++;
wprintf(L"\n%d\t%s\t", dwTotalFileNum, szFullPath);
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
printf("<DIR>");
ListAllFileInDirectory(szFullPath);
}
} while (FindNextFile(hListFile, &FindFileData));
}
}
int main() {
ListAllFileInDirectory(TEXT("C:\\Users\\win10\\source\\repos\\Project13"));
printf("\n");
return 0;
}
显示效果
