Herzlich willkommen in der Delphi-PRAXiS, Albert.
Du hast bei der
Übernahme der Funktion einen Fehler übernommen und einen neuen Fehler eingeführt - diese haben aber wahrscheinlich keinen Einfluß auf dein Programm. Der Rückgabewert im Fehlerfall sollte besser -1 sein, da Null eine zulässige Dateigröße ist, und die Multiplikation mit MAXWORD verfälscht das Eregbnis, da MAXWORD um 1 zu klein ist:
Delphi-Quellcode:
function GetFileSize(const fn: TFileName): Int64;
var
hFile: THandle;
wfd: TWIN32FINDDATA;
begin
Result := -1;
hFile := FindFirstFile(PChar(fn), wfd);
if hFile = INVALID_HANDLE_VALUE
then Exit
else Windows.FindClose(hFile);
Result := Int64(wfd.nFileSizeHigh) shl 32 + wfd.nFileSizeLow;
end;
Deinen Fehler mag ich aber nicht mit dieser Funktion in Zusammenhang bringen. Hast du mal die Dateigröße geprüft, indem du einen Haltepunkt hinter den Aufruf von GetFileSize() setzt?
Freundliche Grüße vom marabu