Bir Windows API programında, bir dizin içindeki tüm dosya ve dizinleri listeleyebiliriz.
Programda yer alacak main.c dosya içeriği aşağıdaki şekilde olacaktır:
main.c
#include <windows.h>
#include <stdio.h>
void list_files_dirs(const char *path);
int main(void) {
const char *directoryPath = "C:\\dizinadi";
list_files_dirs(directoryPath);
getchar();
return 0;
}
void list_files_dirs(const char *path)
{
WIN32_FIND_DATA findFileData;
HANDLE hFind;
char searchPath[MAX_PATH];
snprintf(searchPath, sizeof(searchPath), "%s\\*", path);
hFind = FindFirstFile(searchPath, &findFileData);
if(hFind == INVALID_HANDLE_VALUE) {
printf("Dizin bulunamadı: %s\n", path);
return;
}
do {
const char *name = findFileData.cFileName;
if(strcmp(name, ".") != 0 && strcmp(name, "..") != 0) {
if(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
printf("[Dizin] %s\n", name);
}
else {
printf("[Dosya] %s\n", name);
}
}
} while (FindNextFile(hFind, &findFileData) != 0);
FindClose(hFind);
}