• ベストアンサー

フォルダ単位で

bmpファイルを読み込んで加工するプログラムを組んだのですが、これをフォルダを指定してそのフォルダ内すべての画像を一括処理するようにしたいのですが、どうゆうふうにすればいいでしょうか?初心者なので言葉足らずかもしれませんが、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

これを行うにはAPIによる フォルダ内のファイルの検索を行えば解決できるはずです。 まず、ヘッダーは #include <windows.h> を宣言してください。 処理部分では char FilePath[] = "C:\\Temp\\*.bmp"; // ← Tempフォルダ内のbmpファイルを指定しています char FindPath[ MAX_PATH ]; HANDLE hFind; WIN32_FIND_DATA fd; // ファイルを検索 hFind = FindFirstFile( FilePath, &fd ); if( hFind == INVALID_HANDLE_VALUE ) // 未発見 return; do { strcpy( FindPath, fd.cFileName ); printf("%s\n", FindPath ); } while( FindNextFile( hFind, &fd ) ); // 後処理 FindClose( hFind ); あとはFindPath変数に格納されているパスを参照して bmpファイルを読み込めばできるはずです。 参考になったでしょうか。 (初心者にはAPIは難しかったかな(^_^;)) とりあえず、実行して処理を確認してみてください。

その他の回答 (1)

回答No.1

それは OS やそれを動かすシェルによってやり方が異なります。 UNIX系OSの場合はディレクトリ名だけ与えられてその中のファイル名を探す場合は glob() か opendir(), readdir(), closedir() などの関数でできます。 Windows の場合は FindFirstFile() と FindNextFile() のような関数があったと思います。(UNIXと同じ glob() やopendir() などをこれを使って実現しているライブラリ関数がコンパイラによってはあるかも知れません。もしあればUNIXと同じように作れます)。

leadrih
質問者

お礼

回答ありがとうございます。 OSはwindowsXpです。それらの関数について調べてみたいと思います。

関連するQ&A

専門家に質問してみよう