【Win32】ファイルリストを取得するには?ファイルリストを取得して配列に格納する方法

C++アイコン C++

ワイルドカードで指定したファイルの一覧を取得し、配列に格納する方法をメモしておきます。

スポンサーリンク

ファイルリストを取得する方法

Win32でファイルリストを取得するには、ファイル検索を逐次実行し、配列に取得した情報を追加していくことで行うことができます。

スポンサーリンク

サンプルコード

さっそくサンプルコードを公開します。

// ファイルの一覧を格納する変数
WIN32_FIND_DATA files[256];

// ワイルドカード
TCHAR path[] = _T("C:\\Users\\user\\*.pdf");

//
// ファイルリストを取得する
//

DWORD fileCount = 0;//ファイル数
WIN32_FIND_DATA win32fd;//ファイルの情報
HANDLE hFind;//ハンドル

hFind = FindFirstFile(path, &win32fd);
do {
	files[fileCount] = win32fd;
	fileCount++;
} while (FindNextFile(hFind, &win32fd));
FindClose(hFind);

//
//メッセージボックスで表示してみる
//
for (int i = 0; i < sizeof(files); i++) {
	wsprintf(path, _T("%s"), files[i].cFileName);
	MessageBox(NULL, path, NULL, NULL);
}

これを実行すると、filesにファイル一覧が格納されます。

最後に、得られたファイルリストから、メッセージボックスにファイル名を順次表示しています。

コメント

タイトルとURLをコピーしました