2016-04-23 3 views
1

Я отправил файл SFTP на другой сервер с помощью WinSCP в VB.NET.Как проверить, успешно ли соединение с SFTP-сервером с использованием WinSCP в VB.NET

Я хотел бы посмотреть, было ли соединение успешным или нет.

Мне также нужно знать, если файл уже существует в каталоге заранее.

ответ

1

Есть несколько вещей, которые вы можете сделать. Вы можете создать журнал сеансов, который сообщает вам (в подробностях), что произошло во время передачи файла. Вы также можете поместить блок try-catch около mySession.Open(mySessionOptions), чтобы поймать ошибку.

Наконец, используйте mySession.FileExists(remotepath), чтобы проверить, находится ли файл на сервере.

Dim mySessionOptions As New SessionOptions 
With mySessionOptions 
    .Protocol = Protocol.Sftp 
    .HostName = "999.999.999.999" 
    .UserName = "login" 
    .Password = "mypassword" 
    .SshHostKeyFingerprint = "ssh-dss 1024 99:87:99:4d:99:a3:99:b9:99:15:99:f2:99:87:88:b2" 
End With 

Using mySession As Session = New Session 
    ' Will continuously report progress of synchronization 
    AddHandler mySession.FileTransferred, AddressOf FileTransferred 

    ' Connect 
    mySession.SessionLogPath = "C:\Users\yourName\yourFolder\Sessionlog.log" 

    'Use Try-Catch to check for error in connection 
    Try 
     mySession.Open(mySessionOptions) 
    Catch ex As Exception 
     MessageBox.show(ex.Message) 
     mySession.Close() 
     Exit Sub 
    End Try 

    'Check to see if file exist already on server 
    If mySession.FileExists(remotePath) Then 
      MessageBox.Show("File Exists on Server") 
      mySession.Close() 
      Exit Sub 
    End If 

    mySession.PutFiles("C:\Users\yourName\yourFolder\yourfile.dat", remotePath) 

    mySession.Close() 

End Using 

Не забывайте проверять созданный вами журнал, чтобы точно видеть, что произошло.

+0

Вам также необходимо проверить, удалось ли «PutFiles» или нет. Для этого используйте '.Check()'. Например: 'mySession.PutFiles (« C: \ Users \ yourName \ yourFolder \ yourfile.dat », remotePath) .Check()'. См. [Захват результатов операций] (https://winscp.net/rus/docs/library_session#results). –