ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Procurar arquivos em pastas e subpastas

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Zydanerr
Novato
Novato


Registrado: Quarta-Feira, 27 de Agosto de 2008
Mensagens: 5

MensagemEnviada: Qui Fev 05, 2009 5:14 pm    Assunto: Procurar arquivos em pastas e subpastas Responder com Citação

Bem estou com um problema em desenvolver um código que localize todos os arquivos solicitado por nome ou ext.

Como funciona no pesquisar do windows: Digita-se o nome ou ext e ele retorna uma lista de todos os arquivos com o nome ou com a ext, percorrendo pasta atual e subpastas.


Desde já obrigado.

Att,
Winston
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Fev 05, 2009 6:12 pm    Assunto: Responder com Citação

da uma olhada neste artigo:

http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=779
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Zydanerr
Novato
Novato


Registrado: Quarta-Feira, 27 de Agosto de 2008
Mensagens: 5

MensagemEnviada: Qui Fev 05, 2009 6:35 pm    Assunto: Hum Responder com Citação

Ótimo mesmo esse código...
Ele procura na pasta atual, blz! Agora como poderemos fazer pra ele buscar também nas subpastas?

procedure procurar(diretorio, pesquisa: string; listaRetorno: Tlistbox);
var
f: TSearchRec;
r: integer;
begin
if diretorio[length(diretorio)]<>'\' then
diretorio := diretorio+'\';

if not DirectoryExists(diretorio) then
exit;

r := FindFirst(diretorio+pesquisa,faAnyFile,f);
while (r=0) do
begin
r := FindNext(f);

if (f.Name = '.') or (f.Name='..') then
Continue;

if f.Attr = fadirectory then
procurar(diretorio+f.Name,pesquisa,listaRetorno)
else
begin
listaRetorno.Items.Add(diretorio+f.Name);
end;
end;

end;

Código Publicado por jumper



Att,

Winston
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Sex Fev 06, 2009 6:38 pm    Assunto: Responder com Citação

essa funcao usa recursividade pra procurar nas subpastas, ou seja, qdo ele encontra uma subpasta, ele se "auto chama"
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emersonfc
Novato
Novato


Registrado: Segunda-Feira, 9 de Março de 2015
Mensagens: 1

MensagemEnviada: Qui Mai 28, 2015 2:39 pm    Assunto: Responder com Citação

Eu sei que o tópico já é antigo, mas sei que pode ser útil pra alguém que queira usar essa informação, assim como foi pra mim.

No post acima com a solução, está listando o próximo antes de exibir o primeiro.
Abaixo a correção.

procedure procurar(diretorio, pesquisa: string; listaRetorno: Tlistbox);
var
f: TSearchRec;
r: integer;
begin
if diretorio[length(diretorio)]<>'\' then
diretorio := diretorio+'\';

if not DirectoryExists(diretorio) then
exit;

r := FindFirst(diretorio+pesquisa,faAnyFile,f);
while (r=0) do
begin


if (f.Name = '.') or (f.Name='..') then
Continue;

if f.Attr = fadirectory then
procurar(diretorio+f.Name,pesquisa,listaRetorno)
else
begin
listaRetorno.Items.Add(diretorio+f.Name);
end;

r := FindNext(f);
end;

end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB