SSH.NET uploadFile не снимает блокировку файла

#.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. Чудесно — Спасибо, что указал на это, Мартин — я упустил это из виду при повторном просмотре моего кода. Еще одна пара глаз помогает.