FileSize, welcher Unterschied zu diesem Verfahren und was ist besser zu verwenden?

Über Größe einer Datei erhalten, habe ich diese zwei Funktionen:

function GetFileSize1(const FileName: TFileName): Int64;
var
 iTmp: Int64;
 SearchRec: TSearchRec;
begin
  iTmp := -1;
  if FindFirst(FileName, faAnyFile, SearchRec) = 0 then
  begin
    iTmp := SearchRec.Size;
    System.SysUtils.FindClose(SearchRec);
  end;
  Result := iTmp;
end;

Und:

function GetFileSize2(const FileName: TFileName): Int64;
var
 FileStream: TFileStream;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead);
  try
    Result := FileStream.Size; 
  finally  
    FileStream.Free;
  end; 
end;

Was ist der Unterschied in der Praxis? Beide liefern natürlich dasselbe Ergebnis, aber was ist zuverlässiger, schneller, sicherer? Oder besser, was ist die bevorzugte Verwendung? Erste oder zweite? Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage