Johny Ellis
0
Q:

cmo ler o dado de um cliente ftp usando vbnet

 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ''EnviarArquivoFTP("/testePasta/testefile.xml", "c:\testefile.xml")
        EnviarArquivoFTP(txtServidorFTP.Text, txtArquivo.Text)
    End Sub
0
 Public Sub EnviarArquivoFTP(ByVal caminhoArquivoFtp As String, ByVal arquivo As String)
        'Informe o nome servidor ftp ou ip 
        Dim ftphost As String = "127.0.0.1"

        Dim caminhoFTP As String = "ftp://" & ftphost & caminhoArquivoFtp
        Dim ftp As FtpWebRequest = DirectCast(FtpWebRequest.Create(caminhoFTP), FtpWebRequest)

        'define as credenciais 
        ftp.Credentials = New NetworkCredential(txtUsuario.Text, txtSenha.Text)
        'define o tipo de ação 
        ftp.KeepAlive = True
        ftp.UseBinary = True
        ftp.Method = WebRequestMethods.Ftp.UploadFile
        'trata o retorno
        Dim fs As FileStream = File.OpenRead(arquivo)
        Dim buffer As Byte() = New Byte(fs.Length - 1) {}
        fs.Read(buffer, 0, buffer.Length)
        fs.Close()
        Dim ftpstream As Stream = ftp.GetRequestStream()
        ftpstream.Write(buffer, 0, buffer.Length)
        ftpstream.Close()
    End Sub
0
Sub listarFTP(ByVal dir As String, ByVal usuario As String, ByVal senha As String)

        Dim dirFtp As FtpWebRequest = CType(FtpWebRequest.Create(dir), FtpWebRequest)

        ' credenciais
        Dim credenciais As New NetworkCredential(usuario, senha)
        dirFtp.Credentials = credenciais

        'comando a executar
        dirFtp.Method = "LIST"

        'usando a enumeração WebRequestMethods.Ftp
        dirFtp.Method = WebRequestMethods.Ftp.ListDirectoryDetails

        ' Obtem o resultado do comando
        Dim reader As New StreamReader(dirFtp.GetResponse().GetResponseStream())

        ' Ler o stream
        Dim res As String = reader.ReadToEnd()

        ' Mostrar. (falta definir o método)
        'exibir(res)

        ' Fechar o stream aberto.
        reader.Close()
    End Sub
0
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        descarregarArquivoFTP(txtServidorFTP.Text, txtUsuario.Text, txtSenha.Text, txtArquivo.Text)
    End Sub
0
Imports System
Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1

       Private Sub descarregarArquivo(ByVal arquivoFTP As String, _
                             ByVal usuario As String, ByVal senha As String, _
                             ByVal dirLocal As String)

        Dim dirFtp As FtpWebRequest = CType(FtpWebRequest.Create(arquivoFTP), FtpWebRequest)

        ' credenciais do usuário
        Dim credenciais As New NetworkCredential(usuario, senha)
        dirFtp.Credentials = credenciais

        ' comando para executar usando a enumeração de WebRequestMethods.Ftp
        dirFtp.Method = WebRequestMethods.Ftp.DownloadFile

        ' Obtem resultado do comando
        Dim reader As New StreamReader(dirFtp.GetResponse().GetResponseStream())

        ' Ler o stream (o conteudo do arquivo)
        Dim resultado As String = reader.ReadToEnd()

        ' Mostrar
        'exibeArquivo(resultado)

        ' Guardar localmente com a extensão .txt
        Dim ficLocal As String = Path.Combine(dirLocal, Path.GetFileName(arquivoFTP) & ".txt")
        Dim sw As New StreamWriter(ficLocal, False, Encoding.Default)
        sw.Write(resultado)
        sw.Close()

        ' Fecha o stream aberto
        reader.Close()
    End Sub
0
        'Valores usado no exemplo
        Const localFile As String = "C:\arquivo.bin"
        Const remoteFile As String = "/pub/servidorftp.bin"
        Const host As String = "ftp://ftp.host.com"
        Const username As String = "usuario"
        Const password As String = "senha"

        '1. Cria uma requisição: deve estar no formato ftp://hostname
        'e não apensa ftp.myhost.com
        Dim URI As String = host & remoteFile
        Dim ftp As System.Net.FtpWebRequest = CType(FtpWebRequest.Create(URI), FtpWebRequest)

        '2. Define as credenciais
        ftp.Credentials = New System.Net.NetworkCredential(username, password)

        '3. Definindo a ação
        ftp.KeepAlive = False
        'definindo uma transferencia binária e não textual
        ftp.UseBinary = True
        'Define a ação (neste caso fazer um downloa de um arquivo)
        ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile

        '4. se voce estiver usando um método que envia um arquivo 
        '5. Obtem a resposta da requisição ftp e do stream associado
        Using response As System.Net.FtpWebResponse = CType(ftp.GetResponse, System.Net.FtpWebResponse)
            Using responseStream As IO.Stream = response.GetResponseStream
                'percorre para ler/escrever o arquivo
                Using fs As New IO.FileStream(localFile, IO.FileMode.Create)
                    Dim buffer(2047) As Byte
                    Dim read As Integer = 0
                    Do
                        read = responseStream.Read(buffer, 0, buffer.Length)
                        fs.Write(buffer, 0, read)
                    Loop Until read = 0 
                    responseStream.Close()
                    fs.Flush()
                    fs.Close()
                End Using
                responseStream.Close()
            End Using
            response.Close()
        End Using
        '6. Fim 
    End Sub
0

New to Communities?

Join the community