Olá galera, nesta Quick Tips, irei mostra como podemos criar algumas funções para usarmos em um FTP, temos nativo no Delphi, na Palheta Indy Clients, o componente TIdFTP. Com ele vamos conhecer algumas de suas principais funções. Para isso vamos criar inicialmente o formulário para implementarmos as rotinas, veja a imagem abaixo

  Tela
 

Nela podemos notar:

 
  • 2 TLabeledEdit ( EdtEndereco, EdtNovoDiretorio )
  • 4 TBitBtn ( BtnDeletar, BtnCriar, BtnBaixar, BtnAdicionar )
  • 1 TDirectoryListBox ( DirectoryListBox1 )
  • 1 TFileListBox ( FileListBox1 )
  • 1 TLabel( Label1 )
  • 1 TImageList( ImageList1 )
  • 1 TIdFTP ( IdFTP1 )
  • 1 TMemo ( Memo1)
  • 1 TTreeView (TreeView1 )
  • 2 TSplitter ( Splitter1, Splitter2)
 

Vou deixar a arrumação por conta de vocês, caso queiram seguir o Layout esta logo a cima.

 

Configurando o IdFTP1

AutoLogin = True
  • Host = Endereço do seu FTP
  • UserName = Usuário do seu FTP
  • PassWord = Senha do Usuário do seu FTP
  • IPVersion = Id_IPv4
  • Posta = 21 – Caso você tenha alguma outra porta do seu FTP basta informar
 

Observação: Caso você trabalhe com Proxy, tem como conectar também configurando o seu Proxy , através da propriedade ProxySettings(Host, PassWord, Post, ProxyType, UserName.

 

Configurando o DirectoryListBox1

  • Em DirLabel selecione Label1.
  • Em FileList selecione FileListBox1
 

Vamos implementar os eventos dos 4 BitBtn:

 

Listagem 1: Evento OnClick do BtnCriar

procedure TFrmPrincipal.BtnCriarClick(Sender: TObject);
begin
   try
      IdFTP1.Connect;
      IdFTP1.MakeDir(EdtEndereco.Text + '/' + EdtNovoDiretorio.Text);
   finally
      IdFTP1.Disconnect;
   end;
end;
 
BtnDeletar
procedure TFrmPrincipal.BtnDeletarClick(Sender: TObject);
begin
   Try
      IdFTP1.Connect;
      IdFTP1.Delete(EdtEndereco.Text);
   Finally
      IdFTP1.Disconnect;
   End;
end;
 
BtnAdicionar
procedure TFrmPrincipal.BtnAdicionarClick(Sender: TObject);
begin
   Try
      IdFTP1.Connect;
      IdFTP1.Put(FileListBox1.FileName, EdtEndereco.Text + '/' +        
                        ExtractFileName(FileListBox1.FileName));
   Finally
      IdFTP1.Disconnect;
   End;
end;
 
BtnBaixar
procedure TFrmPrincipal.BtnBaixarClick(Sender: TObject);
begin
   try
      IdFTP1.Connect;
      IdFTP1.Get(EdtEndereco.Text, DirectoryListBox1.Directory + '/' +          
                        TreeView1.Selected.Text,True, False);
   finally
      IdFTP1.Disconnect;
   end;
end;
 

Fico por aqui ate à próxima Quick Tips. Aguarde a próxima parte.

 

Um abraço.