SoloCodigo

Programación General => Delphi => Mensaje iniciado por: Rothariger en Jueves 20 de Mayo de 2004, 03:35

Título: Tamaño De Archivo O Carpeta...???
Publicado por: Rothariger en Jueves 20 de Mayo de 2004, 03:35
Hola gente, otra vez yo...

hay alguna forma facil de saber el tamaño de una carpeta, o archivos??

PD: tambien me sirve en Visual Basic o Visual C#....
Título: Re: Tamaño De Archivo O Carpeta...???
Publicado por: BlackTigerX en Jueves 27 de Mayo de 2004, 15:21
en Delphi, utilizando una variable de tipo TSearchRec

aqui esta una funcion que te regresa el tamaño de cualquier archivo:

function TamanoArchivo(const Archivo:string):Integer;
var S:TSearchRec;
begin
  Result:=-1; //default
  if (FindFirst('miarchivo.txt', faAnyFile, S)=0) then
  begin
    Result:=S.Size;
    FindClose(S)
  end
end;

function TamanoCarpeta(const Carpeta:string):Integer;
var S:TSearchRec;
begin
  Result:=0; //default
  if (FindFirst(IncludeTrailingBackslash(Carpeta)+'*.*', faAnyFile, S)=0) then
  repeat
    Inc(Result, S.Size);
  until (FindNext(S)<>0)
  else
    Result:=-1;
  FindClose(S)
end;


para encontrar el tamaño de una carpeta, no hay nada en windows que lo pueda hacer... tienes que ir archivo por archivo, sumando el tamaño de todos... similar al anterior
Título: Re: Tamaño De Archivo O Carpeta...???
Publicado por: BlackTigerX en Jueves 27 de Mayo de 2004, 15:21
en Delphi, utilizando una variable de tipo TSearchRec

aqui esta una funcion que te regresa el tamaño de cualquier archivo:

Código: Text
  1. function TamanoArchivo(const Archivo:string):Integer;
  2. var S:TSearchRec;
  3. begin
  4.   Result:=-1; //default
  5.   if (FindFirst('miarchivo.txt', faAnyFile, S)=0) then
  6.   begin
  7.     Result:=S.Size;
  8.     FindClose(S)
  9.   end
  10. end;
  11.  

para encontrar el tamaño de una carpeta, no hay nada en windows que lo pueda hacer... tienes que ir archivo por archivo, sumando el tamaño de todos... similar al anterior

Código: Text
  1. function TamanoCarpeta(const Carpeta:string):Integer;
  2. var S:TSearchRec;
  3. begin
  4.   Result:=0; //default
  5.   if (FindFirst(IncludeTrailingBackslash(Carpeta)+'*.*', faAnyFile, S)=0) then
  6.   repeat
  7.     Inc(Result, S.Size);
  8.   until (FindNext(S)&#60;&#62;0)
  9.   else
  10.     Result:=-1;
  11.   FindClose(S)
  12. end;
  13.  
Título: Re: Tamaño De Archivo O Carpeta...???
Publicado por: Rothariger en Martes 29 de Junio de 2004, 14:54
Muchas gracias...