Tamaño del archivo, ¿qué diferencia hay con este procedimiento y cuál es el mejor uso?
sobre obtener el tamaño de un archivo, tengo estas dos funciones:
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;
Y:
function GetFileSize2(const FileName: TFileName): Int64;
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create(FileName, fmOpenRead);
try
Result := FileStream.Size;
finally
FileStream.Free;
end;
end;
En la práctica, ¿cuál es la diferencia de ello? Ambos devuelven el mismo resultado, por supuesto, pero ¿qué es más afable, más rápido, más seguro? O mejor dicho, ¿cuál es el uso preferible? ¿Primero o segundo? Muchas gracias.