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