schnelle Alternative für FileExists()
Hallo,
Ja, der Titel sagt schon alles. Kennt da jemand etwas? Ich habe es schon mit GetFileAtrributes() und FindFirstFile() versucht. Ist leider nicht wirklich schneller. Danke schonmal. |
Re: schnelle Alternative für FileExists()
Vielleicht CreateFile?
Aber keine Ahnung.. Warum muss es denn so schnell sein? |
Re: schnelle Alternative für FileExists()
CreateFile wollte ich auch gerade vorschlagen (OPEN_EXISTING aber nicht vergessen).
|
Re: schnelle Alternative für FileExists()
unter diesen Umständen ist das das Schnellste, denn das Dateisystem ist langsam.
Und ich glaube nicht,daß du dich mit dem Dateisystem auseinandersetzen willst/kannst und direkt aus der MFT ausließt (falls es sich überhaupt um NTFS handelt) [add] CreateFile hat den Nachteil, daß die Datei gesperrt sein kann und man so keinen Zugriff bekommt ... drum wird ja GetFileAtrributes verwendet und wenn dieses "Schnelle" nicht geht, dann das langsamere FindFirstFile. |
Re: schnelle Alternative für FileExists()
Habe CreateFile() gerade ausprobiert, aber ist auch nicht wirklich schneller.
Eine FastFileExists() Funktion, die auch mit GetFileAttributes arbeitet habe ich hier auch gerade gefunden, aber diese ist genauso schnell, wie das original FileExists(). Ich werde es dann wohl dabei belassen. Dennoch Danke! |
Re: schnelle Alternative für FileExists()
Zitat:
und sie haben irgendwann bei sich dieses gegen die Fast-Version ausgetauscht :zwinker: |
AW: schnelle Alternative für FileExists()
FindFirst aus SysUtils ist schneller
Willi |
AW: schnelle Alternative für FileExists()
Zitat:
Wenn auf mehrere Dateien im gleichen Ordner (vor allem über eine Netzwerkfreigabe) zugegriffen werden soll, dann wäre es schneller mit FindFirstFile+FindNextFile alle Dateinamen des Ordners einzulesen und dann über eine Hash-Tabelle das FileExists abzubilden. Das setzt natürlich voraus, dass während der Abfragen nicht Dateien hinzukommen oder entfernt werden. So arbeitet z.B. der Delphi Compiler (mit IDEFixPack Plugin). Anstatt abertausender GetFileAttribute Aufrufe macht er einmalig für alle Bibliothekspfade ein FindFirstFile+FindNextFile und greift dann nur noch auf seinen Cache (Hash-Tabelle) zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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