Ver Mensaje Individual
  #1  
Antiguo 23-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Tamaño real de un Archivo

Hay varias formas de obtener el tamaño de un archivo, pero algunas de ellas siguen en Delphi por compatibilidad y no nos dará el valor real cuando el archivo supera el valor máximo de un Integer, por ello, aquí se usa la API de windows para obtener incluso GigaBytes o TeraBytes.

Funcionará tanto con archivos pequeños, como con archivos grandes.

El truco 39 nos formatea el Tamaño de un archivo en MB, KB, etc, pues aquí tenemos el paso previo, obtener el tamaño real en bytes del susodicho archivo ;)
Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

function GetSizeOfFile(const Filename:string): Int64;
var Sr:TSearchRec;
begin
  try
    if FindFirst(FileName,faAnyFile,sr) <> 0 then
      raise Exception.Create('Archivo ' + FileName+' no encontrado');
    Result:= sr.FindData.nFileSizeHigh * maxdword + sr.Finddata.nFileSizeLow;
  finally
    FindClose(sr);
  end;
end;

Para usarlo:
Código Delphi [-]
  ShowMessage(IntToStr(GetSizeOfFile('c:\Autoexec.bat')));

Saludos
Responder Con Cita