Olá galera, nesta
Quick Tips, irei mostrar como listar os subdiretorios encontrados em um
diretório.
Nossa rotina
precisa de dois parâmetros para funcionar, o caminho do diretório que desejamos
verificar os arquivos e uma lista de Strings, um Memo por exemplo ou um ListBox.
procedure TFrmPrincipal.ListarSubDiretorio(const sDirInicial: string; slt:
TStrings
var
xsrSearch: TSearchRec;
xSearchPath: string;
sltSub: TStrings;
i: Integer;
begin
sltSub := TStringList.Create;
slt.BeginUpdate;
try
xSearchPath := sDirInicial;
if FindFirst(xSearchPath + '*', faDirectory, xsrSearch) = 0 then
repeat
if ((xsrSearch.Attr and faDirectory) = faDirectory) and (xsrSearch.Name
<> '.') and (xsrSearch.Name <> '..') then
begin
slt.Add(xSearchPath + xsrSearch.Name);
sltSub.Add(xSearchPath + xsrSearch.Name);
end;
until (FindNext(xsrSearch) <> 0);
FindClose(xsrSearch);
for i := 0 to sltSub.Count - 1 do
ListarSubDiretorio(sltSub.Strings[i],
slt);
finally
slt.EndUpdate;
FreeAndNil(sltSub);
end;
end;
No onClick de um
BitBtn
procedure TFrmPrincipal.BtnListarDiretorioClick(Sender: TObject);
begin
Memo1.Lines.Clear;
ListarSubDiretorio(EdtPasta.Text,
Memo1.Lines)
end;
Fico por aqui ate à
próxima Quick Tips.
Um abraço
Wesley Y
wyamazack@rwsolution.com.br