SSH.NET UploadFile 未释放文件锁定

Lyn*_*hie 4 .net vb.net sftp ssh.net

我正在使用 SSH.NET SFTP 功能将文件上传到 SFTP。我已将其写入函数中,但是我遇到的问题是在上传完成后,我尝试移动原始文件,但文件正在被另一个进程使用。

我知道这是上传过程,没有释放文件,因为我已经注释掉了上传功能,一切都按预期进行。

任何关于我的代码的关于我的问题的指示将不胜感激。

Private Function UploadFile(ByVal file As String, ByVal branch As String, ByVal policyref As String) As Boolean

    Dim connInfo As New ConnectionInfo("abc:22", "guestuser", New PasswordAuthenticationMethod("guestuser", "password"))

    Using client As New SftpClient(connInfo)

        client.Connect()
        If client.IsConnected Then
            Console.WriteLine("Connected to sFTP")
        End If

        Dim fileStream As New FileStream(file, FileMode.Create)

        client.UploadFile(fileStream, "/Test/" & Path.GetFileName(file))

        If client.Exists("/Test/" & Path.GetFileName(file)) Then
            Console.WriteLine("File Uploaded - " & Path.GetFileName(file))
            UpdateFTPLog(branch, policyref)
            Return True
        End If

        client.Disconnect()
        client.Dispose()

    End Using

    Return False
End Function
Run Code Online (Sandbox Code Playgroud)

Mar*_*ryl 5

它与 SSH.NET 无关。这是你自己的代码的错误。你永远不会处置fileStream.

它应该是:

Using fileStream As FileStream = New FileStream(file, FileMode.Create)
    client.UploadFile(fileStream, "/Test/" & Path.GetFileName(file))
End Using
Run Code Online (Sandbox Code Playgroud)