#.net #vb.net #sftp #ssh.net
#.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/" amp; Path.GetFileName(file))
If client.Exists("/Test/" amp; Path.GetFileName(file)) Then
Console.WriteLine("File Uploaded - " amp; Path.GetFileName(file))
UpdateFTPLog(branch, policyref)
Return True
End If
client.Disconnect()
client.Dispose()
End Using
Return False
End Function
Ответ №1:
Это не имеет ничего общего с SSH.NET . Это ошибка вашего собственного кода. Вы никогда не удаляете fileStream
.
Это должно быть:
Using fileStream As FileStream = New FileStream(file, FileMode.Create)
client.UploadFile(fileStream, "/Test/" amp; Path.GetFileName(file))
End Using
Комментарии:
1. Чудесно — Спасибо, что указал на это, Мартин — я упустил это из виду при повторном просмотре моего кода. Еще одна пара глаз помогает.