unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//**********************************************************************
procedure BuscarArchivos(const directorio, mascara: string;
atributos: Integer; var listado: TStrings);
// Procedimiento anidado
//
procedure Buscar(const subdirectorio: string);
var
regBusqueda: TSearchRec;
begin
// Buscar en el directorio
if FindFirst(subdirectorio + mascara,atributos,regBusqueda) = 0 then
begin
try
repeat
Application.ProcessMessages;
if (regBusqueda.Attr and faDirectory = 0)
or (regBusqueda.Name <> '.')
and (regBusqueda.Name <> '..') then
begin
//listado.Add(subdirectorio + (regBusqueda.Name)+ ' --> '+ inttostr(regBusqueda.Size));
listado.Add(inttostr(regBusqueda.Size));
end;
until FindNext(regBusqueda) <> 0;
except
FindClose(regBusqueda);
end;
FindClose(regBusqueda);
end;
// Buscar en los subdirectorios
if FindFirst(subdirectorio + '*', atributos
or faDirectory, regBusqueda) = 0 then
begin
try
repeat
Application.ProcessMessages;
if ((regBusqueda.Attr and faDirectory) <> 0)
and (regBusqueda.Name <> '.')
and (regBusqueda.Name <> '..') then
Buscar(subdirectorio + regBusqueda.Name + '\');
until FindNext(regBusqueda) <> 0;
except
FindClose(regBusqueda);
end;
FindClose(regBusqueda);
end;
end;
//
// Fin del procedimiento anidado:
// Comienza "BuscarArchivos(...)"
//
begin
Buscar(IncludeTrailingPathDelimiter(directorio));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
total, aux: real;
i: integer;
nombre: string;
begin
lista := TStringList.Create;
BuscarArchivos('C:\mgflo\video\', '*.*', faAnyFile, lista);
memo1.clear;
total:=0;
for i := 0 to lista.Count-1 do
begin
nombre:= lista[i];
aux:=(strtofloat(nombre) / 1024 / 1024);
total:=total+aux;
memo1.Lines.Add(floattostr(aux));
end;
memo1.Lines.Add('---------------------------');
memo1.Lines.Add(floattostr(total / 1024));
// FormatFloat ('0.00', total).
lista.Free;
end;
end.
.
viernes, 27 de febrero de 2015
Suscribirse a:
Entradas (Atom)