Listar Listar diretórios do servidor FTP no Delphi

Delphi

08/01/2014

Bom, minha dúvida é a seguinte, como listar todos os diretórios e arquivos contidos no servidor FTP, usando o Delphi 2010 apresentando o resultado como na imagem abaixo:
[img:descricao=Árvore de diretórios]http://arquivo.devmedia.com.br/forum/imagem/352121-20140108-131215.png[/img]

Aproveitando a deixa, como faço para criar diretórios no FTP verificando se já existe um diretório com o mesmo nome? Bom, se alguém puder ajudar esse iniciante aqui, serei eternamente grato! Abraço a todos!
Ivan Alves

Ivan Alves

Curtidas 0

Melhor post

Maicon Wagner

Maicon Wagner

08/01/2014

Neste Exemplo amigo utilizei um TreeView e um botao para executar os comandos abaixo e o COmponente TIdFTP:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  I: Integer;
  PastaExistente: Boolean;
begin
  //Setando os dados do Servidor FTP...
  FTP.Host    := 'ENDERECO DO HOST FTP';
  FTP.Username:= 'USERNAME FTP';
  FTP.Password:= 'PASSWORD FTP';

  Try
  //Apaga os Dados que tem em TreeView
  TreeView1.Items.Clear;

  //Realiza a Conexao com FTP...
  FTP.Connect;

  //Verifica se foi conectado com sucesso
  if FTP.Connected then begin
      //Lista o arquivos e pastas do home do FTP
      FTP.List;

      //LOOP para jogar o nome dos arquivos e pastas no TREEVIEW...
      for I := 0 to FTP.DirectoryListing.Count-1 do begin
       TreeView1.Items.Add(nil,FTP.DirectoryListing.Items[i].FileName);
      end;

      //LOOP para verificar se a pasta existe...
     try
      for I := 0 to FTP.DirectoryListing.Count-1 do begin
       PastaExistente:= False;
        //Verifica se a pasta Existe...
       if FTP.DirectoryListing.Items[i].FileName = 'MINHA PASTA' then begin
         ShowMessage('File exists');
         PastaExistente:= True;
         Exit;
       end
      end;
     finally
       //Caso a pasta nao existir ela eh criada
       if not PastaExistente then
        FTP.MakeDir('MINHA PASTA');
     end;
  end;
  Finally
    FTP.DisconnectNotifyPeer;
  End;
end;

GOSTEI 1

Mais Respostas

Ivan Alves

Ivan Alves

08/01/2014

MAICON WAGNER DOS SANTOS, meu muito obrigado velho, ajudou bastante, agora vou procurar uma maneira de por os ícones, valeu pela ajuda! Abraços
GOSTEI 0
Fabio Pereira

Fabio Pereira

08/01/2014

Eu segui o exemplo acima, porém quando executa o comando FTP.List; apresenta time-out.

Já tentei aumentando o ListenTimeout e ReadTimeout para 120000 e mesmo assim não obtenho sucesso.

Alguém poderia me ajudar?
GOSTEI 0
POSTAR