VB 2005 - Fazendo o download de arquivos via FTP
Se você pretende efetuar o download de arquivos usando o protocolo FTP (File Transfer Protocol) em suas aplicações Visual Basic vai adorar a facilidade com a qual a nova versão da plataforma .NET permite realizar esta árdua tarefa.
Obs: O significado de FTP é File Transfer Protocol, ou traduzindo, Protocolo de Transferência de Arquivos. É a meio de transferência de arquivos de diversos formatos, sendo este uma foto, um texto, um artigo científico, uma página de intenet, um programa, uma mp3, de um computador remoto para o seu micro e vice-versa.
Basta você referenciar o namespace System.Net usar a classe FtpWebRequest para habilitar o protocolo FTP em suas aplicações.
A classe FtpWebRequest fornece uma maneira simples e objetiva que permite efetuar downloads de arquivos a partir de servidores FTP. O processo funciona bem tanto para FTP anônimo como quando você precisa informar um usuário e senha.
Vamos mostrar na prática como usar estes recursos em uma pequena aplicação feita no VB 2005 Express Edition.
Inicie o VB 2005 Express Edition e crie um novo projeto chamado vbFTpNet e no formulário padrão, form1.vb, inclua um controle Label , uma caixa de texto chamada txtArq e um botão de comando chamado btnFtp.
Faça a referência ao namespace System.Net e ao namespace System.IO no projeto através da declaração:
imports System.Net
Imports System.IO
No evento Click do botão de comando - btnFtp - inclua o seguinte código:
Private
Sub btnFtp_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnFtp.Click Dim arquivoFonte As String arquivoFonte = txtArq.Text If (arquivoFonte = "") Or fonte = String.Empty Then MsgBox("Informe a URL completa e o nome do arquivo para download via FTP...") End If ' ----- inicia o download via FTP DownloadViaFtp(arquivoFonte, "anonymous", "seu@endereçode-email") End Sub |
Neste evento estamos efetuando a chamada ao método DownloadViaFtp passando as informações necessárias, onde arquivoFonte é o caminho completo do arquivo para o qual desejamos efetuar o download, e , deve estar localizado em um servidor FTP; anonymous indica que estamos efetuando o download via FTP anônimo , neste caso, o seu endereço eletrônico pode ser usado como senha.
OBS: O login Anônimo irá automaticamente conectar-se ao servidor como um usuário anônimo, preenchendo automaticamente o ID do usuário e, como senha, o endereço de e-mail especificado.
Vejamos a seguir o código do método DownloadViaFtp usado para realizar o serviço de Ftp do servidor:
Private
Sub DownloadViaFTP(ByVal arquivoFonte As String, ByVal
userName As String, ByVal password As String) ' ----- Faz o Download do arquivo definido via FTP e salva em uma pasta da aplicação Dim readBuffer(4095) As Byte Dim contador As Integer Dim arquivoRequisitado As FtpWebRequest Dim respostaFTP As FtpWebResponse Dim respostaStream As IO.Stream Dim arquivoSaida As IO.FileStream Dim pastaDestino As String ' ----- Obtem local onde irá salvar o arquivo pastaDestino = My.Computer.FileSystem.CombinePath(My.Application.Info.DirectoryPath, My.Computer.FileSystem.GetName(arquivoFonte)) Try ' -----
Faz a conexao com o arquivo no site FTP arquivoRequisitado.Credentials = New
NetworkCredential(userName, password) MsgBox("Download completo! " & vbNewLine & arquivoFonte & vbNewLine & " em " & pastaDestino) Catch ex As Exception MsgBox("Erro
durante a realização do FTP " + vbCrLf
+ ex.Message) ' -----
libera recursos. |
A variável arquivoRequisitado é a instância da classe FtpWebRequest que iremos usar para usar o protocolo FTP ela possui várias propriedades como Credentials e Method que fornecem o controle requerido para definir a ação FTP.
O objeto FtpWebResponse trata o fluxo de bytes relacionado ao arquivo a ser baixado e fornece um Stream para mover os bytes (respostaFTP).
O Stream de bytes é lido em um buffer em pacotes de até 4096 bytes e é escrito em seguida em um arquivo na máquina local(arquivoSaida).
As propriedades do objeto FtpWebRequest mais importantes definidas são:
Para verificar se a operação foi realizada com sucesso basta verificar a pasta da aplicação, onde fica o arquivo executável, e ver se o arquivo foi criado com sucesso.
Abaixo temos o formulário do projeto com um exemplo onde eu informe o meu endereço de ftp no yahoo:
Obs: Você pode implementar os demais comandos FTP : rename, GetFileSize, MakeDir baseando-se neste exemplo .
Pegue o código completo do projeto aqui : vbFTPNet.zip
Simples, direto e objetivo: VB 2005.
Até o próximo artigo...
José Carlos Macoratti