SFTP batch transfer

Recursively transfers a whole directory tree to or from an SFTP server.

A simple GUI client that connects to the specified SFTP server and download or upload a directory including all files and subdirectories (both VB.NET and C#). Displays a progress bar and other batch transfer state information. Error-handling form to make it possible to select a desired reaction to any problem detected during the batch transfer (such as a file that already exists).

List of batch transfer features:

  • Wildcard character support
  • Single file transfer possible as well
  • Default actions for common problems can be specified
  • Both recursive and non-recursive transfer are supported
  • Symbolic link alerts - custom symbolic link handling
  • Symbolic link infinite loop detection
  • Event driven - you always receive an event when any problem occures unless the session is no longer usable, making it possible to select the next step - skip, cancel, overwrite, etc.

C#

// downloads the whole directory "public" from the server into "C:\Temp" directory
sftp.Download("public", @"C:\Temp", TraversalMode.Recursive);

// uploads the whole directory "C:\Temp" to the server's current directory
sftp.Upload(@"C:\Temp", ".", TraversalMode.Recursive);

VB.NET

' downloads the whole directory "public" from the server into "C:\Temp" directory
sftp.Download("public", "C:\Temp", TraversalMode.Recursive)

' uploads the whole directory "C:\Temp" to the server's current directory
sftp.Upload("C:\Temp", ".", TraversalMode.Recursive)