tá aí o segredo, mas não conta pra ninguém, viu!? rsrs
mais fácil q isso, só mamão com açúcar...


procedure GetDirList(Directory: String; var Result: TStrings;
SubPastas: Boolean);
var
   Sr : TSearchRec;

   procedure Recursive(Dir : String); { Sub Procedure, Recursiva }
   var
      SrAux : TSearchRec;
   begin
     if SrAux.Name = EmptyStr then
        FindFirst(Directory + '\' + Dir + '\*.*', faDirectory, SrAux);
     while FindNext(SrAux) = 0 do
        if SrAux.Name <> '..' then
           if DirectoryExists(Directory + '\' + Dir + '\' + SrAux.Name) then
           begin
              Result.Add(Directory + '\' + Dir + '\' + SrAux.Name);
              Recursive(Dir + '\' + SrAux.Name);
           end;
   end;
begin
   FindFirst(Directory + '\*.*', faDirectory, Sr);
   while FindNext(Sr) = 0 do
   if Sr.Name <> '..' then
   if DirectoryExists(Directory + '\' + Sr.Name) then
   begin
      Result.Add(Directory+'\'+Sr.Name);

      if SubPastas then
         Recursive(Sr.Name);
   end;

end;


daí, vc usa:

var
   lista : TStrings;
begin
      Lista := TStringList.Create;
      GetDirList('c:\',lista,true); // o true é se vai mostrar os subdiretórios
      ListBox1.Items.Clear;
      ListBox1.Items := Lista;
      Lista.Free;

  ----- Original Message ----- 
  From: jeannefoliveira 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, August 03, 2006 8:24 AM
  Subject: [delphi-br] Listar subpastas de uma pasta


  Oi pessoal, tudo bem? Estou tentando listar as subpastas de um
  diretório em um listbox mas nao estou conseguindo.. isto é possivel?

  Tipo... tenha seguinte hierarquia:

  - c:\PASTA
  -> Subpasta1
  -> SubPasta2
  -> SubPasta3
  -> ...

  O que eu quero é que o listBox (ou outro componente) possua os
  seguintes itens:
  SubPasta1
  SubPasta2
  SubPasta3
  ...

  tem como?




   

  __________ Informação do NOD32 IMON 1.1689 (20060802) __________

  Esta mensagem foi verificada pelo NOD32 sistema antivírus
  http://www.eset.com.br



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a