こんにちは。さおりと申します。
ファイル検索の方法で教えてほしいことがあります。
環境は、WinMe VC++6.0 MFCです。
現在、ファイル検索をするために、FindFirstFileを使用しています。
それで、ビットマップファイルのみ検索する場合などは、最初の引数に
*.bmpなどと書いています。
ただ大文字と小文字が区別されちゃうので、bmpを検索したあとに、
BMPでまた検索するというふうにしております。
そこでお聞きしたいのは、BMP,bmp,Bmp,bMp,bmPなどの拡張子の
ものをすべて検索したい時はどのようにするのでしょうか?
考えられる組み合わせのぶんだけ、FindFirstFileとFindNextFileを
繰り返す必要があるのでしょうか?
別の関数若しくは簡単なやり方がありましたら教えて下さい。
宜しくお願いします。
ではFindFirstFileExはどうでしょう。
既定の検索条件では、大文字と小文字を区別しません。となっています。
実際にやってみましたが、CFileFindを使っても、FindFirstFile()APIを使っても
大文字小文字の区別はありませんでしたよ。Windows2000ですけど。
WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile( C:\\*.png, &fd);
if( hFind != INVALID_HANDLE_VALUE )
{
do
{
TRACE(%s\n, fd.cFileName );
}
while( FindNextFile( hFind, &fd ) );
FindClose(hFind);
}
StrStrIを使ってみてはいかがでしょう。
こんにちは。さおりです。
しばらくPCから離れていたため返事が遅れてしまいました。
もうしわけございません。
FindFirstFileは自分でも確認しましたが、確かに大文字と小文字の
区別はありませんでした。
以前、*.*で検索したあとに自分でstrstrを使ってフィルターを
かけていたため大文字・小文字の区別があったのですが、
それをFindFirstFileに大文字・小文字の区別があるというふうに
勘違いしてしまっていました。お騒がせしてしまって申し訳ありません。
ただ、FindFirstFileEx、CFileFind、StrStrIなる関数が
あることを知ることができたので勉強になりました。
レスをくださった方々、ありがとうございます。
今後ともよろしくお願いします。
すみません、解決チェック忘れました。