GetFileSizeEx
-
Hallo,
kennt zufällig jemand eine Alternative, C++ oder Assembler zu GetFileSizeEx? Die Alternative sollte wenn möglich schneller sein aber auf keinen Fall langsamer.
Gruß
Ocrana
-
Lol, nö.
Findest du die so langsam, ja?
-
Bei einer Dateigröße ist dies auch kein Problem. Bei mehreren Tausend könnte man sich das schon schneller wünschen. Da kann auch der Eigenschaften-Dialog von Windows ein Weilchen brauchen.
Das Problem bei der Ermittlung von Dateigrößen ist, dass dies nur bei geöffneten Dateien möglich ist. GetFileSize in Standard-C sieht so aus:
unsigned long FileSize(const char* fn) { unsigned long size = (unsigned long) -1; FILE *f = fopen(fn, "rb"); if (f) { if (fseek(f, 0, SEEK_END) == 0) size = ftell(f); fclose(f); } return(size); }
Sieht auch nicht schneller aus. Einzige Möglichkeit ist der direkte Zugriff auf die Dateizuordnungstabelle. Dabei erhälts Du aber nur die Anzahl der belegten Blöcke und nicht die tatsächliche Größe der Datei (und geht bei mir auch nur via FAT und nicht NTFS).
An einer besseren Idee hätte ich auch Interesse!
-
Hallo,
meine Frage zielte jetzt nicht speziell auf den Speed ab sondern primär darauf das diese Funktion "GetFileSizeEx" nicht auf ME läuft und die mögliche Alternative (wenn es die gibt) nicht langsammer sein sollte. Also nigs lollen
Ocrana
-
Doch lol, nimm doch einfach GetFileSize
Also ohne Ex.
-
Doch es ist zum lolen das du deine Frage vernünftig stellen konntest.