CFileFindの仕様に関して


まーくん  2009-05-07 22:59:49  No: 70129  IP: [192.*.*.*]

質問させて頂きます。

■環境
・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 02:42:58  No: 70130  IP: [192.*.*.*]

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

編集 削除
さすらいの無職  2009-05-08 09:14:34  No: 70131  IP: [192.*.*.*]

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

そんなことないよー。

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

編集 削除