FindFirstFile() について – プログラミング – Home

通知
すべてクリア

[解決済] FindFirstFile() について


haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

下記のコードで、指定のフォルダ内のファイル検索をしたいとおもっていましたが。
WIN32_FIND_DATA構造体のcFileNameには
.
しか検索しません。原因が分からず、困っています。

WIN32_FIND_DATA lpffd;

FindFirstFile(c:\\フォルダデータ\\*.*, &lpffd);

環境は、 Win2000 VC++6 MFC  です。

よろしくお願いします。 


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

戻り値を見て、FindNextFileを呼んでいますか?
(FindFirstFileは1ファイルの情報のみ。)

> MFC
ならCFileFindクラスもあります。
(ハンドルやWIN32_FIND_DATA構造体をメンバに持っているクラス)


返信引用
haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

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
でした。


返信引用
haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

FindNextFile()をループで、何回も呼び出すようにしましたら、2回目に肝心のファイルが
出てきました。一応、この問題は解決ですが、FindFirstFile()の結果と、FindNextFile()の
2回目の結果は不可解です。
この機会に、この原因について教えていただけると幸いです。


返信引用
haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

ごめんなさい。上の書き込みの訂正です。

FindNextFile()をループで、何回も呼び出すようにしましたら、2回目に肝心のファイルが
出てきました。一応、この問題は解決ですが、FindFirstFile()の結果と、FindNextFile()の

1回目の結果は

不可解です。
この機会に、この原因について教えていただけると幸いです


返信引用
とーりすがり
 とーりすがり
(@とーりすがり)
ゲスト
結合: 18年前
投稿: 29
 

.そのフォルダ(C:\フォルダデータ\)
..親フォルダ(C:\)
なんら不可解ではないけど?


返信引用
haruko
 haruko
(@haruko)
ゲスト
結合: 19年前
投稿: 38
Topic starter  

とーりすがりさん、早速ありがとうございます。
そういうことなのですね。他の書き込みも見ましたら、最初からフォルダ内のファイルが検索さ
れていましたので、あれこれ弄くりまわして、とうとう皆さんの手助けを借りることになってし
まいました。
本当にありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました