プロが教えるわが家の防犯対策術!

いつもお世話になっております。
今日はファイル検索についてお聞きしたいことがあります。
FindFirstFileを使ってフォルダ内のファイルを取得し、表示することを
目的とし、それはできたのですが、ファイルだけでなくフォルダも表示してしまいます。
「.」があるかないかで分別しようと思ったのですが
デバッガで見たところフォルダの最後にもなぜか「.」がついていたので
どのようにしたらいいか思いつきませんでした。
調べてみたのですが特定の拡張子を表示というものはありましたが
フォルダ以外のすべてのファイルを表示したいです。
いいアイデアがありましたらご教授願います。

A 回答 (3件)

★過去質問より。


・サブフォルダを検索しない場合は
 http://oshiete1.goo.ne.jp/qa3220015.html→『あるディレクトリ内のファイルをファイル名でソートして取得』
・サブフォルダも検索する場合は
 http://oshiete1.goo.ne.jp/qa3230202.html→『デスクトップ上の全ファイル取得』
 という感じで行えます。
 両方見れば分かりますが次の1行でフォルダとファイルを分岐しています。
>if ( fdFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
 ↑
 ここ。
 それから
 『.』は自分のディレクトリ・エントリ
 『..』は親のディレクトリ・エントリ
 を意味しています。
 ※あと過去質問やネット検索すると沢山の情報が見つかりますよ。
・以上。
    • good
    • 0
この回答へのお礼

サンプルページを教えていただきありがとうございます。
これからは自分で適したものを探せるようがんばります。

お礼日時:2008/02/05 22:38

ディレクトリを除くのであれば,WIN32_FIND_DATA::dwFileAttributesとFILE_ATTRIBUTE_DIRECTORYのANDをとって,それが0のもののみを表示するようにすればよいです。


ファイル名で判別するのは,対象にディレクトリを含む場合で,TEXT(".")またはTEXT("..")に完全に一致するかどうかの判定だけです。

ディレクトリでないフォルダはFindFirstFileでは出てこないので,上記の方法で全てのファイルを列挙することができます。
    • good
    • 0
この回答へのお礼

どうやってフォルダ名からはじくかを考えていたので
構造体の中にそういうものがあるとは思わず、
調査不足でした。
ご回答ありがとうございました。

お礼日時:2008/02/05 22:36

WIN32_FIND_DATA のメンバ: dwFileAttributes


で判別できます。マニュアル(MSDN)を読んでください。
    • good
    • 0
この回答へのお礼

どうやってフォルダ名からはじくかを考えていたので
構造体の中にそういうものがあるとは思わず、
調査不足でした。
ご回答ありがとうございました。

お礼日時:2008/02/05 22:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!