C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 35 を表示中)
■17573 / )  Re[16]: フォルダ内のファイル名を取得する方法
□投稿者/ 渋木宏明(ひどり) (726回)-(2008/04/27(Sun) 15:37:51)
渋木宏明(ひどり) さんの Web サイト
>>拡張子の数だけ GetFiles() するよりは、1回だけ GetFiles() してから拡張子を見て選別する方が I/O の回数が少なくなるので効率的です。
>
> どうでしょう。
> たぶん、拡張子の数だけ GetFiles() するほうが速いのではないかと。
> ヒット数 << 母集合 の一般的な場合

んー、この場合はどうでしょうね?

GetFiles()(=実際にはその下請けであるだろう FindFirstFile(), FindNextFile() API)は、内部的に全ファイル列挙してみて、フィルタにマッチするやつを順にかえすだけのような気がします。(ワイルドカードのすべてのパターンにマッチするようなインデックスは作れなさそうな気がするので)

なので、GetFiles() を何回も実行するということは、全ファイルの列挙を何回も実行することになる=I/O 量が飛躍的に伸びてしまうのではないかと。
返信 編集キー/


管理者用

- Child Tree -