質問: findfirstfileについて いつもお世話になっております。 今日はファイル検索についてお聞きしたいことがあります。 findfirstfileを使ってフォルダ内のファイルを取得し、表示することを 目的とし、それはできたのですが、ファイルだけでなくフォルダも表示してしまいます。 「.」があるかないかで分別しようと思ったのですが デバッガで見たところフォルダの最後にもなぜか「.」がついていたので どのようにしたらいいか思いつきませんでした。 調べてみたのですが特定の拡張子を表示というものはありましたが フォルダ以外のすべてのファイルを表示したいです。 いいアイデアがありましたらご教授願います。
回答: ディレクトリを除くのであれば,win32_find_data::dwfileattributesとfile_attribute_directoryのandをとって,それが0のもののみを表示するようにすればよいです。 ファイル名で判別するのは,対象にディレクトリを含む場合で,text(".")またはtext("..")に完全に一致するかどうかの判定だけです。 ディレクトリでないフォルダはfindfirstfileでは出てこないので,上記の方法で全てのファイルを列挙することができます。