SSH.NET UploadFile 未释放文件锁定

SSH.NET UploadFile not releasing file lock

我正在使用 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

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

应该是:

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