GARANTIR DESCONTO

Fórum Procurar arquivo subpasta #487460

31/07/2014

0

Bom Dia, como eu procuro um arquivo em uma subpasta ?

Exemplo, tenho um arquivo chamado 'palm.db', eu quero localizar ele em uma subpasta para ver se encontra. Se ele encontrar eu faço minhas configurações necessárias, se nao encontrar da mensagem de erro.

Obrigado
Jcg Sistemas

Jcg Sistemas

Responder

Posts

31/07/2014

Thiago Irrazabal

Bom dia, criei um exemplo aqui pra ti, segue os passos:

Coloque um TMemo, um TEdit e um TBitBtn. Renomeie o Memo para mmoDiretorios, o Edit para edtDiretorioInicial e o BitBtn deixe como está.

Depois declare essa procedure no private ou public se preferir.
procedure MapeiaDiretorio(Caminho: String);


CTRL + SHIFT + C para criar e Substitua por isso:
var
  Search: TSearchRec;
  Retorno, I: Integer;
  Achou: Boolean;
begin
  Achou := False;
  Retorno := FindFirst(Caminho + '*.*', faDirectory, Search);
  mmoDiretorios.Lines.Add('Mapeando Diretório: ' + Caminho);

  repeat
    if Search.Name = 'palm.db' then
      begin
        Achou := True;
        mmoDiretorios.Lines.Add('Arquivo Encontrado no Direitório: ' + Caminho);
      end
    else if (Search.Name[1] <> '.') and ((Search.Attr and faDirectory) = faDirectory) then
      Achou := MapeiaSubDiretorio(Caminho + Search.Name + '\');

    if not(Achou) then
      Retorno := FindNext(Search);
  until (Retorno  <> 0) or Achou;
end;


Depois declare essa function no private ou no public.
function MapeiaSubDiretorio(Caminho: String): Boolean;


CTRL + SHIFT + C para criar e Substitua por isso:
var
  Search: TSearchRec;
  Retorno, I: Integer;
  Achou: Boolean;
begin
  Achou := False;
  Retorno := FindFirst(Caminho + '*.*', faDirectory, Search);
  mmoDiretorios.Lines.Add('Mapeando Diretório: ' + Caminho);

  repeat
    if Search.Name = 'palm.db' then
      begin
        Achou := True;
        mmoDiretorios.Lines.Add('Arquivo Encontrado no Direitório: ' + Caminho);
      end
    else if (Search.Name[1] <> '.') and ((Search.Attr and faDirectory) = faDirectory) then
      Achou := MapeiaSubDiretorio(Caminho + Search.Name + '\');

    Retorno := FindNext(Search)
  until (Retorno  <> 0) or Achou;

  Result := Achou;
end;


Depois no click do botão coloque isso:
  if edtDiretorioInicial.Text = '' then
    Exit;

  MapeiaDiretorio(edtDiretorioInicial.Text);


Pronto, rode o programa e coloque no Edit o Diretório que tu quer procurar, exemplo: C:\
Lembrando que tem que ter a contra-barra no final.




Att,
Thiago Irrazabal de Oliveira.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar