Pues aqui dejo una sencilla funcion para descargar un archivo mediante FTP, recive como parametros el nombre del archivo a descargar, el nombre que tendra despues de la descarga, el nombre de usuario ,el password de conexion, y la direccion del servidor, devuelve un booleano para saber que se completo la descarga.----------------------CODIGO-------------------------------------
Private Function DescargaArchivo(ByVal Filename As String, ByVal NewFileName As String, _
ByVal UserNameFtp As String, ByVal PassFTP As String, ByVal URI As String) As Boolean
Dim Ftpconection As FtpWebRequest = CType(FtpWebRequest.Create(URI & "/" & Filename), FtpWebRequest)
' Creamos la nueva conexion del tipo web request donde URI es la direccion del servidor
Ftpconection.Credentials = New NetworkCredential(UserNameFtp, PassFTP)
'Asignamos las credenciales para el servidor
Ftpconection.Method = WebRequestMethods.Ftp.DownloadFile
'El metodo que utilizaremos como peticion, en este cado el de descargar
Try
Dim response As System.Net.FtpWebResponse = CType(Ftpconection.GetResponse, System.Net.FtpWebResponse)
Dim responseStr As IO.Stream = response.GetResponseStream
'guardamos el stream de datos
Dim fstr As New IO.FileStream(NewFileName, IO.FileMode.Create)
Dim buffer(2047) As Byte 'Buffer de transferencia
Dim ReadStream As Integer = 0
Do
ReadStream = responseStr.Read(buffer, 0, buffer.Length) 'leemos el stream de los datos
fstr.Write(buffer, 0, ReadStream) 'escribimos en el archivo
Loop Until ReadStream = 0
responseStr.Close() 'cerramos los archivos y las conexiones
fstr.Flush()
fstr.Close()
responseStr.Close()
response.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
----------------------CODIGO-------------------------------------
Este codigo requiere que agregemos la referencia
Imports System.Net
Ejemplo probado en Visual studio 2008