ファイルを検索するための関数 FileRead_findFirst, FileRead_findNext, FileRead_findClose を使用する方法があります
FileRead_findFirst で最初の一つ目のファイルを検出すると共に検索ハンドルを戻り値で取得して、
FileRead_findNext で二つ目以降のファイルを検出、戻り値が -1 になるまで繰り返し、全てのファイルの検出が終了したら
FileRead_findClose で後始末をする、という使い方をします
この3つの関数を使用してフォルダ内の bmp ファイルを一つづつ画面に表示してはキー入力待ちをする
というサンプルを作成しましたので、よろしければご覧下さい
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
FILEINFO FileInfo ;
DWORD_PTR FindHandle ;
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 検索開始、最初のファイルの情報を取得
FindHandle = FileRead_findFirst( "*.bmp", &FileInfo ) ;
// ファイルが見つかった場合のみ分岐の中を実行
if( FindHandle != ( DWORD_PTR )-1 )
{
do
{
// 画面をクリア
ClearDrawScreen() ;
// 見つかったファイルを画面に表示
LoadGraphScreen( 0, 0, FileInfo.Name, FALSE ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
// キー入力待ち
WaitKey() ;
// 次のファイルを検索、無かったらループを抜ける
}while( FileRead_findNext( FindHandle, &FileInfo ) >= 0 ) ;
}
// 検索ハンドルの後始末
FileRead_findClose( FindHandle ) ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
因みにファイルの情報が格納される構造体 FILEINFO の中身は以下のようになっています
struct FILEINFO
{
char Name[ 260 ] ; // ファイル or フォルダ名
int DirFlag ; // フォルダかどうか( TRUE:フォルダ FALSE:ファイル )
LONGLONG Size ; // サイズ
DATEDATA CreationTime ; // 作成日時
DATEDATA LastWriteTime ; // 最終更新日時
} ;