使用VB.NET将文件上传到SFTP服务器

时间:2018-02-01 05:56:43

标签: .net vb.net sftp

我需要将文件上传到SFTP服务器。我正在使用VB.NET 2008。

如何使用端口号,用户名和密码等将简单的.csv文件从本地计算机上传到SFTP服务器?提前谢谢。

1 个答案:

答案 0 :(得分:3)

.NET常用的开源SFTP库是SSH.NET

有了它,你可以使用这样的代码:

Dim client As SftpClient = New SftpClient("example.com", "username", "password")
client.Connect()

Using stream As Stream = File.OpenRead("C:\local\path\some.csv")
    client.UploadFile(stream, "/remote/path/some.csv")
End Using

还有其他图书馆。如果您需要更多高级功能,例如上传目录中的所有文件甚至完整的目录结构,您可能会发现 my WinSCP .NET assembly很有用。

使用WinSCP,您可以使用这样的代码上传所有.csv文件:

Dim sessionOptions As New SessionOptions
With sessionOptions
    .Protocol = Protocol.Sftp
    .HostName = "example.com"
    .UserName = "username"
    .UserName = "password"
    .SshHostKeyFingerprint = "ssh-rsa 2048 ..."
End With

Using session As New Session
    session.Open(sessionOptions)

    session.PutFiles("C:\local\path\*.csv", "/remote/path/*").Check()
End Using

WinSCP GUI can generate an upload code template,就像上面的那样,对你而言。

虽然,WinSCP .NET程序集不是本机.NET库,但它只是一个围绕控制台应用程序的.NET包装器。所以它有自己的局限性