ファイルの検索の方法

[戻る]
さおり 2002/07/10(水) 12:20:12
こんにちは。さおりと申します。
ファイル検索の方法で教えてほしいことがあります。
環境は、WinMe VC++6.0 MFCです。

現在、ファイル検索をするために、FindFirstFileを使用しています。
それで、ビットマップファイルのみ検索する場合などは、最初の引数に
"*.bmp"などと書いています。

ただ大文字と小文字が区別されちゃうので、bmpを検索したあとに、
BMPでまた検索するというふうにしております。

そこでお聞きしたいのは、BMP,bmp,Bmp,bMp,bmPなどの拡張子の
ものをすべて検索したい時はどのようにするのでしょうか?
考えられる組み合わせのぶんだけ、FindFirstFileとFindNextFileを
繰り返す必要があるのでしょうか?

別の関数若しくは簡単なやり方がありましたら教えて下さい。
宜しくお願いします。

駄犬 [E-Mail] 2002/07/10(水) 12:41:33
ではFindFirstFileExはどうでしょう。
"既定の検索条件では、大文字と小文字を区別しません。"となっています。

EIJI 2002/07/10(水) 13:31:36
実際にやってみましたが、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);
}

canto 2002/07/10(水) 21:52:06
StrStrIを使ってみてはいかがでしょう。

さおり 2002/07/14(日) 13:40:01
こんにちは。さおりです。
しばらくPCから離れていたため返事が遅れてしまいました。
もうしわけございません。

FindFirstFileは自分でも確認しましたが、確かに大文字と小文字の
区別はありませんでした。

以前、*.*で検索したあとに自分でstrstrを使ってフィルターを
かけていたため大文字・小文字の区別があったのですが、
それをFindFirstFileに大文字・小文字の区別があるというふうに
勘違いしてしまっていました。お騒がせしてしまって申し訳ありません。

ただ、FindFirstFileEx、CFileFind、StrStrIなる関数が
あることを知ることができたので勉強になりました。
レスをくださった方々、ありがとうございます。
今後ともよろしくお願いします。

さおり 2002/07/14(日) 13:40:32
[[解決]]
すみません、解決チェック忘れました。

古いスレッドには追加発言できません。