Man beachte:
Zitat:
Description
Call FileSize to determine the size of the file specified by the file variable F. The size is expressed as the number of records in a record file. Thus:
If the file is declared as a file of byte, then the record size defaults to one byte, and FileSize returns the number of bytes in the file.
The Reset procedure can set the record size (in bytes) when it opens the file. In this case, FileSize returns the number of records in the file.
Note: If the file is declared as an untyped file and you don’t specify a record size when you call Reset, then FileSize assumes a record size of 128. That is, FileSize gives the number of bytes divided by 128.
To use FileSize, the file must be open. If the file is empty, FileSize(F) returns 0.
Note: FileSize can't be used on a text file.
So würde ich es machen:
Delphi-Quellcode:
function GetFileSize(szFile: PChar): Int64;
var
fFile: THandle;
wfd: TWIN32FINDDATA;
begin
result := 0;
if not FileExists(szFile) then exit;
fFile := FindFirstfile(pchar(szFile),wfd);
if fFile = INVALID_HANDLE_VALUE then exit;
result := (wfd.nFileSizeHigh*(Int64(MAXDWORD) + 1))+wfd.nFileSizeLow;
windows.FindClose(fFile);
end;