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

Upload file to SFTP server using VB.NET

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

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

.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 包装器。所以它有自己的局限性。