FindFirst und FindNext noch modern? Lieber IShellFolder?
Ich lese gerade zum ersten mal von IShellFolder und lese auch hier und dort, dass das Iterieren durch Verzeichnisse damit wesentlich schneller sein soll
als mit FindFirst und FindNext. Ich selber benutze nur FindFirst und FindNext. Es ist lokal sehr schnell. Selbst bei einer halben Millionen Dateien. Aber wenn ich demselben Code ein Verzeichnis auf meinem gemappten Netzlaufwerk oder einer USB-Festplatte übergebe, dauert das ewig. Hier soll IShellFolder wohl ebenfalls wesentlich schneller sein. a) wie kann IShellFolder schneller sein? Die Netzwerkfestplatte kommt ja nicht näher, nur weil ich kein Find mehr benutze b) wie benutzt man IShellFolder? ich finde leider keinerlei Beispiele. c) was würdet ihr benutzen? |
AW: FindFirst und FindNext noch modern? Lieber IShellFolder?
Zitat:
http://delphi.cjcsoft.net/viewthread.php?tid=48467 gruss |
AW: FindFirst und FindNext noch modern? Lieber IShellFolder?
Zitat:
Die Implementierung der COM-Klasse könnte dann (ab Windows 7 / Windows Server 2008 R2) FindFirstFileEx mit FindExInfoBasic und FIND_FIRST_EX_LARGE_FETCH verwenden. Der Unterschied in der Performance liegt hauptsächlich in der fehlenden Ermittlung der alternativen 8.3-Dateinamen. |
AW: FindFirst und FindNext noch modern? Lieber IShellFolder?
Hinweis: Bei den neueren Delphis gibts auch noch:
http://docwiki.embarcadero.com/Libra...GetDirectories http://docwiki.embarcadero.com/Libra...ctory.GetFiles http://docwiki.embarcadero.com/CodeE...raion_(Delphi)) |
AW: FindFirst und FindNext noch modern? Lieber IShellFolder?
IShellFolder geht letztendlich auf die selben APIs, wie FindFirstFile.
Durch die zusätzliche Kapselung würde ich aber eher erwarten, dass es nur noch langsamer werden könnte. NtQueryDirectoryFile |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz