SFGAO_HASSUBFOLDER + GetAttributesOf()の速度


れお  2014-10-17 23:18:24  No: 46748  IP: [192.*.*.*]

GetAttributesOf()の第3引数にSFGAO_HASSUBFOLDERを渡し、下位のフォルダがあるか確認する処理を書いています。

問題なく動作しているのですが、下位のフォルダに25000程度ファイルが存在すると、ものすごく動作が遅くなることが分かりました。
これはWindowsXPに比べWindows7だと顕著に遅くなるみたいです。

ココからが質問なのですが、GetAttributesOf()代替案、もしくはこうしたら速くなるよ、という情報をお持ちの方が要らしたら教えて頂けないでしょうか。

以上、よろしくお願いいたします。

編集    削除
通りすがり  2014-10-23 00:35:08  No: 46749  IP: [192.*.*.*]

回答がつかないようなので…

代替案ということであれば、下位のフォルダの確認だけ
System.SysUtils.FindFirst
http://docwiki.embarcadero.com/Libraries/XE7/ja/System.SysUtils.FindFirst
(Win32APIのFindFirstFile相当)

System.SysUtils.DirectoryExists
http://docwiki.embarcadero.com/Libraries/XE7/ja/System.SysUtils.DirectoryExists
(Win32APIのGetFileAttributes相当)

あたりで置き換えてみるのはいかがでしょう?外していたらすいません。

編集    削除