こんにちは。今回は2度目の質問になります。
前回(7/31)は、kuさん、Halさんに答えていただきました。
あの時は本当に助かりました。
それでは、さっそく質問に移りたいと思います。
関連しているファイルがいくつ存在するかを取得するのに
CFileFindクラスのFindFile(),FindNextFile()
を使ってやっているんですが、なんかうまくいきません。
例えば、sinjin1.txt, sinjin2.txt, sinjin...,
というファイルがいくつも存在した場合、このsinjinという
名前をキーにしてファイル数を調べたいと思っていますが、
何か良い方法があったらどなたか教えてください。
お願いします。
基本的な方針は、CFileFindクラスのFindFile(),FindNextFile()を使うって事でいいと思います。
ファイル名を列挙する要領で、キーワードに該当するファイル数を数えていきます。
「うまくいかない」ということですが、どんな状況に陥ってるのですか?
もう少し詳しくお願いします。
sugarさんへ
「どんな状況に陥っている」に対する返答です。
先程質問した関連ファイル数の取得方法ですが、もし膨大な数の関連
ファイルが存在した場合、ループで必要以上にチェックしなければ
いけないのかが分からず困っています。まだ初心者の初心者なので
FindFile(),FindNextFile()の使用方法もわかっていないから
このような状況になっていると思います。
MSDNより見つけた例を、以下のようにいじってみました。
sinjin*.*というキーワードにヒットするファイルだけを列挙できると思います。
これなら、関係ないファイルのチェックは不要となるわけですから、
ファイル数も単純なカウントで求められると思います。
あとは、サブフォルダ配下も検索できるようにするなど、
必要に応じていろいろ応用ができると思います。
CFileFind finder;
BOOL bWorking = finder.FindFile(sinjin*.*);
while (bWorking)
{
TRACE(%s\n, finder.GetFileName());
bWorking = finder.FindNextFile();
}
sugarさん、本当に助かりました。
問題解決です。
こんなに丁寧に教えて下さるとは思っていなかったのと
迅速な返答に対して
すごく感動してしまいました。
本当にありがとうございました。