下記のコードで、指定のフォルダ内のファイル検索をしたいとおもっていましたが。
WIN32_FIND_DATA構造体のcFileNameには
.
しか検索しません。原因が分からず、困っています。
WIN32_FIND_DATA lpffd;
FindFirstFile(c:\\フォルダデータ\\*.*, &lpffd);
環境は、 Win2000 VC++6 MFC です。
よろしくお願いします。
戻り値を見て、FindNextFileを呼んでいますか?
(FindFirstFileは1ファイルの情報のみ。)
> MFC
ならCFileFindクラスもあります。
(ハンドルやWIN32_FIND_DATA構造体をメンバに持っているクラス)
Blueさん、いつもありがとうございます。
早速、次のファイル検索のため、FindNextFileにハンドルを与えて呼び出してみました。
WIN32_FIND_DATA lpffd;
HANDLE hFindFile = FindFirstFile(c:\\フォルダデータ\\*.*, &lpffd);
FindNextFile(hFindFile, &lpffd);
きちんとFindFirstFile()関数からはハンドルが帰ってきています。
FindNextFile()出戻ってきた
WIN32_FIND_DATA構造体のcFileNameには
..
です。
ちなみに FindFirstFile(c:\\*.*, &lpffd);
の結果は
IO.SYS
でした。
FindNextFile()をループで、何回も呼び出すようにしましたら、2回目に肝心のファイルが
出てきました。一応、この問題は解決ですが、FindFirstFile()の結果と、FindNextFile()の
2回目の結果は不可解です。
この機会に、この原因について教えていただけると幸いです。
ごめんなさい。上の書き込みの訂正です。
FindNextFile()をループで、何回も呼び出すようにしましたら、2回目に肝心のファイルが
出てきました。一応、この問題は解決ですが、FindFirstFile()の結果と、FindNextFile()の
1回目の結果は
不可解です。
この機会に、この原因について教えていただけると幸いです
.そのフォルダ(C:\フォルダデータ\)
..親フォルダ(C:\)
なんら不可解ではないけど?
とーりすがりさん、早速ありがとうございます。
そういうことなのですね。他の書き込みも見ましたら、最初からフォルダ内のファイルが検索さ
れていましたので、あれこれ弄くりまわして、とうとう皆さんの手助けを借りることになってし
まいました。
本当にありがとうございました。