Skip to content

SFTP Examples

Andrew Lambert edited this page Oct 26, 2020 · 17 revisions

SSH File Transfer Protocol

SFTP is a protocol for managing files on a server over SSH.

Download

This example downloads a file over SFTP. For extended features like reading file metadata refer to the SFTPStream class:

  Dim session As SSH.Session = SSH.Connect("ssh://user:[email protected]/")
  Dim sftp As New SSH.SFTPSession(session)
  Dim reader As SSHStream = sftp.Get("file.txt")
  Dim writer As BinaryStream = BinaryStream.Create(SpecialFolder.Desktop.Child("file.txt"))
  
  Do Until reader.EOF
    writer.Write(reader.Read(1024))
  Loop
  
  reader.Close
  writer.Close

Upload

This example uploads a file over SFTP. For extended features like appending to an existing file refer to the SFTPStream class:

  Dim session As SSH.Session = SSH.Connect("ssh://user:[email protected]/")
  Dim sftp As New SSH.SFTPSession(session)
  Dim writer As SSHStream = sftp.Put("file.txt")
  Dim reader As BinaryStream = BinaryStream.Open(SpecialFolder.Desktop.Child("file.txt"))
  
  Do Until reader.EOF
    writer.Write(reader.Read(1024))
  Loop
  
  reader.Close
  writer.Close

List directory

This example uses the SFTPDirectory class to get the names of files/subdirectories in a remote directory using SFTP:

  Dim session As SSH.Session = SSH.Connect("ssh://user:[email protected]/")
  Dim sftp As New SSH.SFTPSession(session)
  Dim names() As String
  Dim lister As SSH.SFTPDirectory = sftp.ListDirectory("/path/to/dir/")
  
  Do
    names.Append(lister.CurrentName)
  Loop Until Not lister.ReadNextEntry()

  lister.Close
Clone this wiki locally