Ir para conteúdo
Fórum Script Brasil
  • 0

Procurar Arquivo


Vivendo&Aprendendo

Pergunta

E ae galera...

Como faço para procurar por um arquivo em todo o HD... tipo a pesquisa do windows mas pelo DELPHI... tipo assim tenho um arquivo que quero encontrar, poid não sei onde ele se encontra então pesquiso em todo o HD e quando ele encontrar me fornece uma mensagem indicando onde esta o arquivo.

falou

Alexandre

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

você já viu aquelas funções ?

Elas retornam arquivos e pastas. Para o que você quer, acho que terá que utilizar essas funções dentro de uma função recursiva p/ vecrificar as sub-pastas.

Uma dica é você somente ler as pastas e utilizar a função FileExists p/ localizar os arquivos desejados.

Link para o comentário
Compartilhar em outros sites

  • 0

Este é um exemplo simples que varre as pastas de C:\ e procura System.ini.

Coloque dois TMemo no Form.

var iRet:Integer; TS:TSearchRec; sVol,sDir,sArq:String;
begin
  sVol := 'c:';
  sDir := '\';
  sArq := 'System.ini';
  if FileExists(sVol+sDir+sArq) then
    Memo2.Lines.Add(sVol+sDir+sArq);
  iRet := FindFirst(sVol+sDir+'*.*', faDirectory+faReadOnly+faHidden, TS);
  While iRet = 0 do
  begin
    if (TS.Attr and faDirectory) > 0 then
    begin
      Memo1.Lines.Add(TS.Name);
      if FileExists(sVol+sDir+TS.Name+'\'+sArq) then
        Memo2.Lines.Add(sVol+sDir+TS.Name+'\'+sArq);
    end;
    iRet := FindNext(TS);
  end;
  FindClose(TS);
end;

Só p/ você ter uma idéia de como funciona.

Para varrer as sub-pastas, você terá que implementar recursividade neste código.

Link para o comentário
Compartilhar em outros sites

  • 0

Recursividade é uma função ou uma procedure que chama ela mesma.

Por ex, você listou as pastas em primeiro nível certo ?

Aí p/ cada pasta você executa a mesma função passando como parâmetro a pasta retornada. É como você clicar numa pasta dentro da outra até chegar ao final.

Se você errar num código recursivo, geralmente dará um erro de Stack Overflow.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...