CFileFindの仕様に関して


まーくん  2009-05-08 07:59:49  No: 70129

質問させて頂きます。

■環境
・VC++2008
・WinXP SP3

■質問内容
CFileFindを使用してファイル検索を行っています。

===============================================
CString strPath = _T("C:\\test\\*.XML");

CFileFind search;
CStringArray aryMaterialPath;
BOOL exist = search.FindFile(strPath);
while (exist) {
  exist = search.FindNextFile();
  aryMaterialPath.Add(search.GetFilePath());
}
===============================================

このようなソースで検索を行っているのですが、
"hoge.xmltemp"というファイル名も
検索にヒットしてしまいます。
※ xmlの後の、"temp"の部分は何でも良いです。

以前は、VC++6.0を使用して開発をしていたのですが、
その時はあまり気にしたことがありませんでした。
.xml以外は、ヒットしなかったように思えます。

私の錯覚、思い込みでしょうか?


YuO  2009-05-08 11:42:58  No: 70130

hoge.xmltempのショートファイル名の拡張子(.込みで4文字)が.xmlなのでは?
これは,VC++6.0でも同じことが起きていたはずです。
# *.htm探せば*.htmlもひっかかる。


さすらいの無職  2009-05-08 18:14:34  No: 70131

> .xml以外は、ヒットしなかったように思えます。

そんなことないよー。

というより、ちょっとプログラミング的な話から外れますが、
「一般的」に検索において鍵語「*cde」で abcde などだけではなく abcdefgh などがヒットするのはむしろ「標準」で感覚的にも自然です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加