Listar diretórios internos

Delphi

13/03/2003

Olá precisava indicar um diretorio por exemplo c:\ e listar para dentro de um listbox todos os diretorios que estao dentro do c:\ indicato teria como obrigado...

[b:1c040ebb17][color=red:1c040ebb17]Título editado pelo Moderador (AZ) - Removido: ´Só Para os Melhores....!´[/color:1c040ebb17][/b:1c040ebb17]


Anonymous

Anonymous

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

13/03/2003

procedure TForm1.Button2Click(Sender: TObject);
var
    SR: TSearchRec;
    I: integer;
begin
listbox1.itens.clear;
   I := FindFirst(edit1.text´, faAnyFile, SR);
   while I = 0 do
       begin
       if (SR.Attr and faDirectory) <> faDirectory then
          begin
          listbox1.itens.add(edit1.text + SR.Name);
       end;
       I := FindNext(SR);
   end;
end; 


Isto mostra os arquivos dentro de un diretório, pode usar coringas Ex:
Edit1.text = ´C:/*.exe´ localiza todos os .EXE que estãona pasta C
[img:0a8216cbef]http://www.apriori.com.br/cgi/forum/images/smiles/icon_cool.gif[/img:0a8216cbef][img:0a8216cbef]http://www.apriori.com.br/cgi/forum/images/smiles/icon_rolleyes.gif[/img:0a8216cbef]


GOSTEI 0
Anonymous

Anonymous

13/03/2003

olá desculpa mas a resposta anterior so listou os arquivos preciso que liste todos os diretorios.. do diretorio indicado... obrigado...


GOSTEI 0
Fred

Fred

13/03/2003

Porque voce nao usa os componentes da palheta ´samples´ la tem componentes para listagem de diretorios 8)


GOSTEI 0
Lfernandos

Lfernandos

13/03/2003

Basta vc combinar os DDL_* com o operador or para obter o q deseja.

ListBox1.Perform(LB_DIR ,
DDL_ARCHIVE or
DDL_DIRECTORY or
DDL_DRIVES or
DDL_EXCLUSIVE or
DDL_HIDDEN or
DDL_READONLYor
DDL_READWRITE or
DDL_SYSTEM,
LParam(PChar(´c:\*.*´)));


GOSTEI 0
Marconi

Marconi

13/03/2003

Desculpe voltar no assunto após 7 meses, mas estava pesquisando sobre como fazer um filescan nos meus diretórios e acabei encontrando estas mensagens.

Não entendi aonde eu coloco o codigo do LFernandoS para que funcione o programa. Deu na mesma.

MARCONI


GOSTEI 0
Fabioss

Fabioss

13/03/2003

Este código resolve so o problema da lista de diretórios;

procedure TForm1.ListaDir(Sender: TObject);
var
  SR: TSearchRec;
  I: integer;
begin
   I := FindFirst( [caminnho] +´*.*´, faDirectory, SR);
   While I = 0 Do
     Begin
     If (SR.Name <> ´.´) and (SR.Name <> ´..´) Then
            Memo1.Lines.Add(SR.Name);
      I := FindNext(SR);
   End;
end;



GOSTEI 0
POSTAR