私の目的のために、Windows の NTFS ファイル システム上の特定のフォルダーからサブフォルダーを再帰的に列挙する方法を最適化する方法を探していました。Microsoft のFindFirstFile APIのページから、この小さな「宝石」に出くわしました。
注 まれに、または負荷の高いシステムでは、この関数が呼び出された時点で、NTFS ファイル システムのファイル属性情報が最新でない場合があります。現在の NTFS ファイル システムのファイル属性を確実に取得するには、GetFileInformationByHandle関数を呼び出します。
だから、それを理解しようとしましょう。
dwFileAttributes
構造体で返されるパラメーターに依存してWIN32_FIND_DATA
、フォルダーからファイルを伝えます。このメモが示唆しているのは、場合によっては偽の結果が得られる可能性があるということですよね? もしそうなら、ここに投稿するのではなく、彼らのアップデートで修正してみませんか?
また、GetFileInformationByHandle API を使用するための推奨される回避策もあります。正確にはどのように呼ぶべきですか?ファイルハンドルを取ります。FindNextFile
では、が返す各ファイルを開いて呼び出すことを本当に望んでいるのGetFileInformationByHandle
でしょうか。私の最適化がそのようなアプローチで「どこまで」進むか想像できますか?
とにかく、誰かがこれに光を当てることができればいいのですが...