VB.NET 2010 - 用于 FTPS 的 WinSCP 包

VB.NET 2010 - WinSCP Package for FTPS

我刚刚在我的 VB 项目中安装了 WinSCP 库,因此我可以使用 FTPS 将应用程序文件传输到 to/from 服务器。 但是,对于我缺乏知识,我深表歉意,但是我如何让他们的示例代码在实际环境中工作?

我需要修改他们的代码以使用 FTP 和 TLS 而不是 FTP 通过 SSH,如下面的示例代码所示。

Imports WinSCP
 
Friend Class Example
    Public Shared Function Main() As Integer
        Try 
            ' Setup session options
            Dim sessionOptions As New SessionOptions
            With sessionOptions
                .Protocol = Protocol.Sftp
                .HostName = "example.com"
                .UserName = "user"
                .Password = "mypassword"
                .SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
            End With
 
            Using session As New Session
                ' Connect
                session.Open(sessionOptions)
 
                ' Download files
                Dim transferOptions As New TransferOptions
                transferOptions.TransferMode = TransferMode.Binary
 
                Dim transferResult As TransferOperationResult
                transferResult =
                    session.GetFiles("/home/user/*", "d:\download\", False, transferOptions)
 
                ' Throw on any error
                transferResult.Check()
 
                ' Print results
                For Each transfer In transferResult.Transfers
                    Console.WriteLine("Download of {0} succeeded", transfer.FileName)
                Next
            End Using
            Return 0
        Catch e As Exception
            Console.WriteLine("Error: {0}", e)
            Return 1
        End Try
    End Function
End Class

这应该有效:

Dim sessionOptions As New SessionOptions
With sessionOptions
    .Protocol = Protocol.Ftp
    .HostName = "example.com"
    .UserName = "user"
    .Password = "mypassword"
    .FtpSecure = FtpSecure.Explicit
End With

似乎没有 YouTube videos/forum 帖子可以很好地解决这个问题。 所以这是我的解决方案!

这是给所有 current/future 程序员的! 在 Visual Studio 中,转到 Tools > Extension Manager...,然后安装 NuGet Package Manager,重新启动 Visual Studio。

下载并安装 WinSCP,然后从 HERE 下载 WinSCP NuGet 包。 在 Visual Studio 中,右键单击 Solution Explorer 中的项目,然后单击 Manage NuGet Packages...,然后单击左下角的 Settings。 添加源(下载 WinSCP NuGet 包的文件夹)然后单击 OK

接下来,您会看到 WinSCP .NET assembly 出现,点击它并点击 Install。 然后确保将 Imports WinSCP 添加到项目代码的顶部。

之后您可以编写连接、上传和下载功能。 使用他们提供的示例 HERE

重要提示:使用 WinSCP 连接到您的 FTPS 服务器,然后单击 Session 选项卡并单击 Generate session URL/code。 在出现的新 window 中,select .NET assembly code 选项卡。然后确保您的编程语言在 Language 下拉列表中 selected。 在那里!它将显示您的 FTPS 服务器的会话连接代码,只需将其复制并粘贴到 Visual Studio.

从那里开始,您将需要做剩下的工作来修改他们的示例代码,并将其与 WinSCP 给您的会话连接代码结合起来。

编码愉快!