Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Dateigrößen-Feststellung bei "kleineren&quo

  Alt 24. Mär 2008, 13:21
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! <<
  Mit Zitat antworten Zitat