效果
源碼
#include
#include
DWORD EnumerateFileInDrectory(LPSTR szPath){
WIN32_FIND_DATA FindFileData;
HANDLE hListFile;
CHAR szFilePath[MAX_PATH];
lstrcpy(szFilePath, szPath);
//查找所有 .txt 結尾的文件
//lstrcat(szFilePath, "\\*.txt");
lstrcat(szFilePath, "\\*");
//查找第一個文件/目錄,獲得句柄
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;
}
*/
//打印文件名/目錄名
printf("%s", FindFileData.cFileName);
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED){
printf(" 加密");
}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN){
printf(" 隱藏");
}
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
printf(" 目錄");
}
//更多...
printf("\n");
} while (FindNextFile(hListFile, &FindFileData));
}
return 0;
}
int main(int argc, PCHAR argv[]){
if (argc == 2){
EnumerateFileInDrectory(argv[1]);//遍歷指定的目錄
} else{
CHAR szCurrentPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szCurrentPath);//遍歷當前目錄
EnumerateFileInDrectory(szCurrentPath);
}
getchar();
return 0;
}