ワイルドカードで指定したファイルの一覧を取得し、配列に格納する方法をメモしておきます。
ファイルリストを取得する方法
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にファイル一覧が格納されます。
最後に、得られたファイルリストから、メッセージボックスにファイル名を順次表示しています。
コメント