Faz o seguinte:

* se conecta no FTP;
* pega a lista de arquivos que lá estão, incluindo num TStringList, 
filtrando somente o desejado;
* faz os devidos get's;
* fecha a conexão do FTP;

Dá uma olhada no Help do Delphi 7 sobre o componente TidFtp. A ajuda é bem 
explicada quanto a pegar a lista de arquivos e fazer o "get".

[ ]'

----- Original Message ----- 
From: "Eduardo Vinicius Felipe" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Tuesday, August 01, 2006 10:57 AM
Subject: Re: [delphi-br] Transferencia de varios arquivos via FTP


sem querer explorar muito, o formato do arquivo que eu estou manipulando é 
esse XX006A01043-24.07

onde os dados que variam são:

006 (filial)
a ou r (arquivo ou remessa)
01043 (nº remessa)
24.07 (data)

como implemento para serem buscados arquivos apenas dessa data, já que no 
diretorio terão muitos arquivos de varias datas diferentes


Obrigado


  ----- Original Message ----- 
  From: valmor (Evoluthiva)
  To: delphi-br@yahoogrupos.com.br
  Sent: Tuesday, August 01, 2006 6:33 AM
  Subject: Re: [delphi-br] Transferencia de varios arquivos via FTP


  Ops.
  Alias, detalhe, o loop deve ficar assim:

  try
     for i:= 0 to Arquivos.Count -1 do
     begin
            // Pega o arquivo!
            IdFTP1.get( '/ftpdir/'+Arquivos[i], 
'c:\localdir\'+Arquivos[i] );
      end;
  finally
       IdFTP1.Disconnect;
  end;


  Atenciosamente

  Valmor


  valmor (Evoluthiva) escreveu:

  > *Parece que esta tentanto sobrescrever o mesmo arquivo.*
  > 'destination file already existis.'
  > É isso que diz a mensagem: Arquivo de destino já existe.
  > Se deseja pegar mais arquivos deve colocar em uma lista ou em um 
looping.
  > Veja abaixo as mudanças que eu faria no seu código:
  >
  >
  > var
  >    I: integer;
  >    Arquivos: TStringList;
  > begin
  >    Arquivos:= TStringList.create;
  >    Arquivos.add( 'arquivo1.txt' );
  >    Arquivos.add( 'arquivoAbcd.txt' );
  >    Arquivos.add( 'arquivoXxxx.txt' );
  >    Arquivos.add( 'especial.txt' );
  >
  > data:=edit1.Text; // ainda falta implementar essa variavel no codigo
  > dir:= '/operacao/'; // caminho dentro do servidor
  > line2:= '/operacao/arq2.txt'; // caminho do arquivo a ser enviado
  > name2:= 'c:\teste\novonome2.udp'; // tem como retirar essa linha já que
  > os arquivos serão enviados para a estação irão com o mesmo nome?
  >
  > with IdFTP1 do
  > begin
  >    Username := '0000000';
  >    Password := '0000000';
  >    Host := 00.00.00.00;
  >    Connect;
  >    ChangeDir(dir); // muda o diretorio
  > end;
  >
  >
  >    for i:= 0 to Arquivos.Count -1 do
  >
  >        try
  >           // Pega o arquivo!
  >           IdFTP1.get( '/ftpdir/'+Arquivos[i],
  > 'c:\localdir\'+Arquivos[i] );
  >       finally
  >            IdFTP1.Disconnect;
  >       end;
  >     end;
  >    end;
  > end;
  >
  >
  >
  > Atenciosamente
  >
  > Valmor
  >
  >
  >
  >
  >
  > Eduardo Vinicius Felipe escreveu:
  >
  > > vamos ao que interessa...
  > >
  > > To começando com o delphi e tenho instalado a versão 7, na qual eu
  > > estou criando uma aplicação em FTP baseada no Indy.
  > > Essa aplicação fará o seguinte:
  > >
  > > 1º Pegará uma variável(data) de um edit no formato DD.MM (Ex: o
  > > usuário digita 29.07)
  > > 2º Ao clicar no button é feita uma conexão ao servidor de FTP e pega
  > > no diretorio correspondente todos os arquivos referentes a data do 
edit
  > > 3º Com os arquivos na estação é feito um teste para verificar se todos
  > > os arquivos foram copiados (diariamente o número de arquivos é o
  > > mesmo. Ex: 50 arquivos)
  > > 4º Se não tem o número total de arquivos ele retorna uma mensagem
  > > informando que ainda estão faltando arquivos ou se os arquivos já
  > > estão Ok ele faz uma conexão FTP para o outro servidor e coloca os
  > > arquivos no seu diretorio correspondente.
  > >
  > > procurando nos posts do forum encontrei esse codigo que faz quase oque
  > > eu quero mas ele transfere apenas 1 arquivo, já testei ele faz a
  > > transferencia do arquivo para o diretorio, mas retorna os erros 
abaixo:
  > >
  > > project project2.exe raised exception class eldftpfilealreadyexists
  > > with message 'destination file already existis.'. process stopped. use
  > > step or run to continue
  > >
  > > aqui está o código:
  > >
  > > var
  > > Form1: TForm1;
  > > dir,line2,name2 : string;
  > > data : string[5];
  > > implementation
  > >
  > > {$R *.dfm}
  > >
  > > procedure TForm1.Button1Click(Sender: TObject);
  > >
  > > begin
  > > data:=edit1.Text; // ainda falta implementar essa variavel no codigo
  > > dir:= '/operacao/'; // caminho dentro do servidor
  > > line2:= '/operacao/arq2.txt'; // caminho do arquivo a ser enviado
  > > name2:= 'c:\teste\novonome2.udp'; // tem como retirar essa linha já
  > > que os arquivos serão enviados para a estação irão com o mesmo nome?
  > >
  > > with IdFTP1 do
  > > begin
  > > Username := '0000000';
  > > Password := '0000000';
  > > Host := 00.00.00.00;
  > > Connect;
  > > ChangeDir(dir); // muda o diretorio
  > > end;
  > >
  > > try
  > > IdFTP1.get(line2, name2); // envia o arquivo!
  > > finally
  > > IdFTP1.Disconnect;
  > > end;
  > > end;
  > > end.
  > >
  > > alguém pode me indicar como faço a transferencia (FTP --> estação) de
  > > todos os arquivos de acordo com a variavel DATA? como eu crio o teste
  > > para saber se todos os arquivos foram copiados? e porque está dando o
  > > erro já que o arquivo é transferido?
  > >
  > >
  > > Obrigado
  > > Eduardo Vinicius
  > >
  > > [As partes desta mensagem que não continham texto foram removidas]
  > >
  > >
  > >
  > >
  > >
  >
  >
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  >



  [As partes desta mensagem que não continham texto foram removidas]



[As partes desta mensagem que não continham texto foram removidas]






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>



Links do Yahoo! Grupos









-- 
<<<<< 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

 


Responder a