Win32API ディレクトリを走査しファイルを検索する FindFirstFile FindNextFile FindClose
使用するAPI
使用するデータ構造
typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; // 属性 FILETIME ftCreateTime; // 作成日時 FILETIME ftLastAccessTime; // 最終アクセス日時 FILETIME ftLastWriteTime; // 最終更新日時 DWORD nFileSizeHigh; // ファイルサイズ(上位32ビット) DWORD nFileSizeLow; // ファイルサイズ(下位32ビット) DWORD dwReserved0; // リパースタグ DWORD dwReserved1; // 予約 TCHAR cFileName[MAX_PATH]; // ファイル名 TCHAR cAlternateFileName[14]; // 8.3形式のファイル名 } WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
ポイント
#include <windows.h> #include <stdio.h> int main() { HANDLE hFind; WIN32_FIND_DATA win32fd; hFind = FindFirstFile("C:\\*.*", &win32fd); if (hFind == INVALID_HANDLE_VALUE) { return 1; } do { if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { printf("%s (DIR)\n", win32fd.cFileName); } else { printf("%s\n", win32fd.cFileName); } } while (FindNextFile(hFind, &win32fd)); FindClose(hFind); return 0; }