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)
它与 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)