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

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.