Array
(
)

Conectar a um servidor FTP (protocolo SFTP)

Facc
   - 27 mai 2010

Bom dia estou querendo conectar a um servidor de FTP (protocolo SFTP)
Achei alguns componentes pagos que resolveram por hora isso, mas necessito de algo Free ou diretamente no código

Sei que existe uma classe FtpWebRequest, mas não sei como utilizar. Alguém possui algum tutorial (preferencia em português) de como utilizar isso?

Trabalho com VS2008 + WinForms + VB.NET

Facc
   - 27 mai 2010

Consegui resolver com essa função

#Código

    Public Function EnviaFTP(ByVal sArquivo As String) As Boolean
        Dim success As Boolean

        'Utilizando o WinSCP para enviar o arquivo
        Dim winscp As Process = New Process
        winscp.StartInfo.FileName = "C:\Arquivos de Programas\WinSCP\winscp.com"
        winscp.StartInfo.Arguments = "/log=" & logName
        winscp.StartInfo.UseShellExecute = False
        winscp.StartInfo.RedirectStandardInput = True
        winscp.StartInfo.RedirectStandardOutput = True
        winscp.StartInfo.CreateNoWindow = True
        winscp.Start()

        winscp.StandardInput.WriteLine("option batch abort")
        winscp.StandardInput.WriteLine("option confirm on")
        winscp.StandardInput.WriteLine("open CrescaBR")
        winscp.StandardInput.WriteLine("ls")
        winscp.StandardInput.WriteLine("put " & sArquivo)
        winscp.StandardInput.Close()

        Dim output As String = winscp.StandardOutput.ReadToEnd()

        winscp.WaitForExit()

        Dim log As XPathDocument = New XPathDocument(logName)
        Dim ns As XmlNamespaceManager = New XmlNamespaceManager(New NameTable())
        ns.AddNamespace("w", "http://winscp.net/schema/session/1.0")
        Dim nav As XPathNavigator = log.CreateNavigator()

        If winscp.ExitCode <> 0 Then
            MessageBox.Show("Erro")

            For Each message As XPathNavigator In nav.Select("//w:message", ns)
                MessageBox.Show(message.Value)
            Next
            success = False
        Else
            success = True
        End If

        Return success

    End Function


É necessário ter instalado o WinSCP no Cliente e Configurado