Zitat von
himitsu:
weil das eine
WinAPI ist und unter
Linux nicht existiert
Wie kommst du denn auf die Idee?
FileUtil ist Cross-Platform und diese Fkt. auch.
Delphi-Quellcode:
function FileSize(const Filename: string): int64;
{$IFDEF Unix}
var
st: baseunix.stat;
{$ELSE}
var
FileInfo: TSearchRec;
{$ENDIF}
begin
{$IFDEF Unix}
if not fpstat(pointer(Filename),st)>=0 then
exit(-1);
Result:=st.st_size;
{$ELSE}
{$IFDEF WINCE}
FileInfo.Name:=UTF8Decode(Filename);
{$ELSE}
FileInfo.Name:=UTF8ToSys(Filename);
{$ENDIF}
FileInfo.FindHandle:=Windows.FindFirstFile(Windows.LPTSTR(FileInfo.Name),FileInfo.FindData);
if FileInfo.FindHandle=Windows.Invalid_Handle_value then begin
Result:=-1;
exit;
end;
Result:=(int64(FileInfo.FindData.nFileSizeHigh) shl 32)+FileInfo.FindData.nFileSizeLow;
Windows.FindClose(FileInfo.FindHandle);
{$ENDIF}
end;