トップページ > 記事閲覧
フォルダー内の特定のファイルだけを全て読み込みたい
名前:判別式D 日時: 2019/01/02 21:39

こんにちは。 フォルダー内にある特定のファイルだけを全て読み込むような処理をしたいのですが、 何かよい方法や関数はありますか? 具体的には、   "data"というフォルダー内の bmpファイルのみを全て読み込む。   また、この"data"というフォルダーに新たに bmpファイルを追加しても正常にこのファイルを読み込む。 のような感じです。 ご教授いただければ幸いです。
メンテ

Page: 1 |

Re: フォルダー内の特定のファイルだけを全て読み込みたい ( No.1 )
名前:管理人 日時:2019/01/03 15:04

ファイルを検索するための関数 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 ; // 最終更新日時 } ;
メンテ
Re: フォルダー内の特定のファイルだけを全て読み込みたい ( No.3 )
名前:判別式D (解決) 日時:2019/01/03 19:16

サンプルと丁寧な説明ありがとうございました。 おかげで求めていた処理を実現することができました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存