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

4

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

我该如何通过端口号、用户名和密码等信息,将本地计算机上的简单.csv文件上传到SFTP服务器?谢谢。

1个回答

4

一个常用的.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

还有其他的库。如果您需要更多高级功能,比如上传目录中的所有文件甚至完整的目录结构,您可能会发现WinSCP .NET程序集很有用。

使用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可以为您生成上传代码模板,就像上面的模板一样。

然而,WinSCP .NET程序集并不是一个原生的.NET库,它只是一个围绕控制台应用程序的.NET包装器。因此,它有自己的限制。


2
非常感谢您,亲爱的Martin Prikryl先生。这很顺畅地运行着,您一定节省了我的很多时间。再次感谢,愿真主给您启示并时刻保佑您。 - Farhan Ahmed Saifi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接