関連ファイルがいくつ存在するかを取得するには?

[戻る]
新人君 2001/08/10(金) 14:29:04
こんにちは。今回は2度目の質問になります。
前回(7/31)は、kuさん、Halさんに答えていただきました。
あの時は本当に助かりました。

それでは、さっそく質問に移りたいと思います。

関連しているファイルがいくつ存在するかを取得するのに
CFileFindクラスのFindFile(),FindNextFile()
を使ってやっているんですが、なんかうまくいきません。
例えば、sinjin1.txt, sinjin2.txt, sinjin...,
というファイルがいくつも存在した場合、このsinjinという
名前をキーにしてファイル数を調べたいと思っていますが、
何か良い方法があったらどなたか教えてください。
お願いします。

sugar 2001/08/10(金) 14:38:28
基本的な方針は、CFileFindクラスのFindFile(),FindNextFile()を使うって事でいいと思います。
ファイル名を列挙する要領で、キーワードに該当するファイル数を数えていきます。
「うまくいかない」ということですが、どんな状況に陥ってるのですか?
もう少し詳しくお願いします。

新人君 2001/08/10(金) 14:58:26
sugarさんへ
「どんな状況に陥っている」に対する返答です。

先程質問した関連ファイル数の取得方法ですが、もし膨大な数の関連
ファイルが存在した場合、ループで必要以上にチェックしなければ
いけないのかが分からず困っています。まだ初心者の初心者なので
FindFile(),FindNextFile()の使用方法もわかっていないから
このような状況になっていると思います。

sugar 2001/08/10(金) 15:21:15
MSDNより見つけた例を、以下のようにいじってみました。
"sinjin*.*"というキーワードにヒットするファイルだけを列挙できると思います。
これなら、関係ないファイルのチェックは不要となるわけですから、
ファイル数も単純なカウントで求められると思います。

あとは、サブフォルダ配下も検索できるようにするなど、
必要に応じていろいろ応用ができると思います。

   CFileFind finder;
   BOOL bWorking = finder.FindFile("sinjin*.*");
   while (bWorking)
   {
      TRACE("%s\n", finder.GetFileName());
      bWorking = finder.FindNextFile();
   }

新人君 2001/08/10(金) 15:31:00
[[解決]]
sugarさん、本当に助かりました。
問題解決です。
こんなに丁寧に教えて下さるとは思っていなかったのと
迅速な返答に対して
すごく感動してしまいました。

本当にありがとうございました。

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