【问题标题】:Upload file to SFTP server using VB.NET使用 VB.NET 将文件上传到 SFTP 服务器
【发布时间】:2018-07-11 09:26:51
【问题描述】:

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

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

【问题讨论】:

  • 目标是您添加一些自己的代码,以至少展示您为解决这个问题所做的研究工作。
  • 我是 SFTP 上传的新手,但我尝试使用 chilkat。但它无法正常工作并为 .net 程序集提供错误。我检查了目标 cpu x86、OS 32 位等和 ChilkatDotnet2。请给我一个上传文件的例子,以便正确指导我。

标签: .net vb.net sftp


【解决方案1】:

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

【讨论】:

  • 非常感谢亲爱的 Martin Prikryl 先生。它的工作如此顺利,而且肯定为您节省了我很多时间。再次感谢,愿上帝赐予喜达日并一直祝福你
猜你喜欢
  • 2020-04-18
  • 2016-01-28
  • 2022-11-10
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多