Abaixo uma dica retirada do arquivo DTDelphi 2.7: 840 - Listar Arquivos de Um Diretório
uma dica sobre como listar qualquer tipo de arquivos de um diretorio. o toque especial dessa procedure e que ela pode entrar em todos os diretorios que estão dentro do diretorio inicial, para procurar arquivos do tipo especificado. parametros da procedure: diretorioinicial - diretorio que a procedure comeca a sua busca ex: c:\windows\ ou ainda c:\ mascara - mascara de arquivo ex: *.txt ou ainda *.* listtotaldir - quando true, ela fornece o caminho completo recursive - quando true, ativa a busca do arquivo dentro de outros diretorios, que estao dentro do diretorio inicial obs.:O form que ira chamar esta função deve possuir uma variavel global declarada da sequinte forma listtemp2:Tstrings; ele deve ser criada com o comando listtemp2 := TstringList.Create; depois de chamada a procedure o resultado final estara nesta variavel procedure ListarArquivos(diretorioInicial, mascara: string; listtotaldir: boolean = false; recursive: boolean = true); var i: integer; listatemp: TStrings; procedure ListarDiretorios(Folder: string; lista: Tstrings); var Rec: TSearchRec; i: integer; temps: string; begin lista.Clear; if SysUtils.FindFirst(Folder + '*', faDirectory, Rec) = 0 then try repeat lista.Add(rec.Name); until SysUtils.FindNext(Rec) <> 0; finally if lista.count <> 0 then begin // deleta o diretorio .. lista.Delete(1); // deleta o diretorio . lista.Delete(0); i := 0; //deleta os arquivos isto e fica apenas os diretorios if lista.count <> 0 then begin repeat temps := lista.Strings[i]; temps := extractfileext(temps); if temps <> '' then lista.Delete(i) else inc(i); until i >= lista.Count; end; end; end; end; procedure ListarAtahos(Folder, mask: string; Lista: Tstrings); var Rec: TSearchRec; begin lista.Clear; if SysUtils.FindFirst(Folder + mask, faAnyFile, Rec) = 0 then try repeat lista.Add(rec.Name); until SysUtils.FindNext(Rec) <> 0; finally SysUtils.FindClose(Rec); end; end; procedure AddLIstInOther(ListSource, ListDestino: TStrings); var f: integer; begin for f := 0 to ListSource.Count - 1 do begin ListDestino.Add(ListSource.Strings[f]); end; end; begin listatemp := TStringList.Create; ListarAtahos(diretorioInicial, mascara, listatemp); if listtotaldir = true then begin for i := 0 to listatemp.Count - 1 do begin listatemp.Strings[i] := diretorioInicial + listatemp.Strings[i]; end; end; AddLIstInOther(listatemp, listtemp2); if recursive = true then begin ListarDiretorios(diretorioInicial, listatemp); for i := 0 to listatemp.Count - 1 do begin ListarArquivos(diretorioInicial + listatemp.Strings[i] + '\', mascara, listtotaldir, recursive); end; end; listatemp.Free; end; exemplo: coloca-se um listbox, e um button no form. depois declara-se a variavel global no form ex: var Form1: TForm; listtemp2: TStrings; e no evento onclick do button a seguinte procedure listtemp2 := TStringList.Create; ListarArquivos('c:\windows\', '*.exe', true, true); listbox1.items := listtemp2; listtemp2.free; ----- Original Message ----- From: Rubem Nascimento da Rocha To: delphi-br@yahoogrupos.com.br Sent: Wednesday, June 07, 2006 8:31 AM Subject: RE: [delphi-br] lista de arquivos de uma pasta Não existe função pronta para isso. Vc deverá criar uma função própria usando as funções FindFirst(), FindNext() e FindClose() da unit SysUtils. Ao consultar informações sobre essas funções no help do Delphi, haverá um link ilustrando exemplo de como usar essas funções. Use o exemplo e crie sua própria função. Sds. >From: Filipe Belchior <[EMAIL PROTECTED]> >Reply-To: delphi-br@yahoogrupos.com.br >To: delphi-br@yahoogrupos.com.br >Subject: [delphi-br] lista de arquivos de uma pasta >Date: Tue, 06 Jun 2006 14:18:51 -0300 > >olá galera, > >como eu consigo, de preferência numa "list", >o nome dos arquivos de uma pasta? para windows > >pensei em usar o TFileListBox, mas ele é visual, >não to precisando visual.. será q existe alguma >função na unit "Windows"? > > >FILIPE BELCHIOR > > > >_______________________________________________________ >Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular >e anti-spam realmente eficaz. >http://mail.yahoo.com.br/ _________________________________________________________________ MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.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