Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Tamaño real de un Archivo (https://www.clubdelphi.com/foros/showthread.php?t=80480)

Lepe 23-06-2006 13:15:33

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

Lepe 23-06-2006 13:17:50

Usando el Truco 39:
Código Delphi [-]
ShowMessage(FormatFileSize(GetSizeOfFile('c:\pagefile.sys')));


La franja horaria es GMT +2. Ahora son las 22:26:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi