Hallo,
ich hab folgende zwei Funktionen um die Größe einer Datei festzustellen:
1. GetFileSize
Delphi-Quellcode:
function GetFileSize(const FileName: String): Int64;
var
SearchRec: TSearchRec;
begin
Result := -1;
If FindFirst(FileName, faAnyFile, SearchRec) = 0 then
begin
try
Result := SearchRec.Size;
finally
FindClose(SearchRec);
end;
end;
end;
2. FileSize
Delphi-Quellcode:
AssignFile(FromF, OpenDialog1.FileName);
FileMode := fmOpenread;
reset(FromF);
Label2.Caption := IntToStr(FileSize(FromF));
Nun hab ich diese zwei Funktionen verglichen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
FromF: file of byte;
begin
If OpenDialog1.Execute then
begin
Label1.Caption := IntToStr(GetFileSize(OpenDialog1.FileName));
AssignFile(FromF, OpenDialog1.FileName);
FileMode := fmOpenread;
reset(FromF);
Label2.Caption := IntToStr(FileSize(FromF));
end;
end;
Ich hab eine Datei die ist 5,12 GB (5.501.142.528 Bytes) groß.
Bei dieser wird mir in beiden Labels ein Wert von
1206175232.
Bei einer anderen Datei die eine Größe von 2,97 GB (3.199.247.872 Bytes).
Bei dieser Datei wird aber in beiden Labels ein Wert
von -1095719424.
Wieso ist bei der kleinen Datei ein Minus davor?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<