Home Products Ultimate SFTP Component for .NET

SFTP Component for .NET - SSH File Transfer Client Library

Easily add comprehensive SSH Secure File Transfer capabilities to your .NET applications

Ultimate SFTP is a 100%-managed .NET class library that adds powerful SSH Secure File Transfer (SFTP) capabilities to your applications. It is fast, reliable, and feature-rich. It helps you upload, download, create, delete, and check files and directories with a few lines of code.

If you need the Xamarin Android, iOS and .NET CF version, visit Ultimate SFTP Library for Mobile for more details.

Ultimate SFTP for .NET is also included in

Key Features

Optimized for Transfer Speed and Memory Usage

To make sure the Ultimate SFTP library performs well, we:

  • Optimize its code following best coding pracices for performance
  • Use as few resources as possible to minimize memory usage
  • Optimize default component and socket settings for maximum transfer speed

As a result, your files and directories are transferred at maximal possible transfer speed. In case you want to limit the transfer speed take advantage of the bandwidth throttling, by setting the MaxDownloadSpeed and MaxUploadSpeed properties of the Sftp class.

ultimate sftp is optimized for performance

Intuitive and Fully Documented API

Connect, authenticate the user to the server and transfer files with a few lines of code using the intuitive API of ComponentPro's Ultimate SFTP API. By using 100% managed code written in C#, the component takes advantage of the numerous built-in features of the .NET Framework to enhance performance, moreover, the library is CLS compliant, and it does not use any unsafe blocks for minimal permission requirements.

Our classes are fully documented with detailed example code which helps you shorten the learning curve. If your development environment is Visual Studio, enjoy the full integratation of the online documentation. Just mark or select a keyword and press F1 in your Visual Studio IDE, the online documentation is represented instantly.

ultimate sftp is intuitive and fully documented API

Sample Usage - Transferring files and directories

C#
VB.NET
// Create a new instance of the Sftp class.
Sftp client = new Sftp();

// Connect to the SFTP server.
client.Connect("myserver");

// Authenticate.
client.Authenticate("user", "pass");

// Upload local file 'c:\test.dat' to the default remote directory.
client.UploadFile("c:\\test.dat", "test.dat");

string defaultDir = client.GetCurrentDirectory();
Console.WriteLine(string.Format("File has been uploaded to '{0}'.", defaultDir));

// Upload .cs and .vb files to the current directory.
client.UploadFiles("c:\\temp\\*.cs;*.vb", "");

// Download .mp3, .wav and .jpg files from '/mydir' directory to 'c:\temp'.
client.DownloadFiles("/mydir/*.mp3,*.wav,*.jpg", "c:\\temp");

// Upload an entire directory.
client.Upload("c:\\temp", "/");

// Download an entire directory.
client.Download("myremotedir", "c:\\temp");

// Disconnect.
client.Disconnect();
 

Support .NET Framework and Mono

Our component can be integrated to your .NET applications including Console, Windows Forms, Windows Services, Web Forms, ASP.NET MVC, WPF, and Web Services. Moreever, it also allows you to develop similar applications on Linux and Mac OS X with Mono. As a benefit you can create cross-platform application that can run on Windows, Linux, and Mac OS X operating systems.

Developers can use the library in any .NET languages like C#, VB.NET, J#, C++, and F#. For Xamarin Android and iOS projects C# is supported. The following lists all supported platforms:

  • .NET Framework: 2.0, 3.5, 4.0, 4.5, 4.5.1
  • Mono: 2.1, 3.+ on MAC OS X and Linux
ultimate sftp supports .net framework and mono

Support SCP

The library also includes Scp class that lets you perform SCP file copy easily.

Some Examples:

ultimate sftp supports SCP

Unified File System Across SFTP, FTP and ZIP Libraries

To save your effort writing a number of classes for different systems such as FTP, SFTP, ZIP, Local Disk, and Memory, we introduce the Unified File System that makes the file and directory management on these systems seamless. The Unified File System allows you to use the same code to transfer files and directories directly between two different systems. As a benefit, you may need to write only one class that works with all systems. Such complicated work is done by the File System library and there is no need to learn more about other File Transfer Protocols. For more information, please visit this topic.

Some Examples:

ultimate sftp supports SCP

Advanced File Management

Provide synchronous or asynchronous file transferring as well as the ability to deep search, delete, move, set properties, check existence, synchronize, and compare files and directories to your applications, offering an easy way to manage files.

The FileSystem library included in the package allows you to define search criteria so you can send, receive, move, search, delete, and mirror only files and folders that fit the specified criteria.

Some Examples:

ultimate sftp advanced file management

Manipulate File Transfer List On-the-fly

Ultimate SFTP not only supports standard SFTP operations and advanced file managment on single file and multi files with wilcards masks like File Search, delete, set attribute/permissions. It also supports deleting, uploading, and downloading files with real-time statistics and status of the files in process. To add or remove a file or directory from the list of processing items, all you need is to call the Add or Remove method of the ProgressFileList class.

Standards

The library is compliant with RFC 4250-4254, 4256 and 4419. It supports the following protocols:

  • SSH v2
  • SFTP v3 & v4

Support Multi-threading

In addition to supporting basic and advanced tasks, the Ultimate SFTP Component also supports multi-thread download and upload as well as data compression on-the-fly with built-in Zlib classes to speed up the transfer.

Some Examples:

Support Many Authentication Methods

In addition to basic username/password authentication method the SFTP library also supports public key, keyboard interactive, and GSSAPI authentication methods.

Some Examples:

ultimate sftp supported authentication methods

SSH Features Included

Beside having the comprehensive SFTP interface, the Ultimate SFTP component also supports other SSH operations like executing a command on an SSH server, starting a new SSH terminal session, reusing SSH connection for another task, etc.

ultimate sftp supports ssh session

PowerShell and SQL-SSIS

UltimateSftp can be easily integrated with Powershell with some simple steps. You can also use it for SQL-SSIS package. Please see this topic for more details.

ultimate sftp can be used in powershell & sql-ssis

Security

The library enables you to build applications with many securiry feature including enabling only the Federal Information Processing Standards (FIPS) approved encryptions, verifying server key, generating private/public key pair. It supports the following security algorithm:

  • Encryption Algorithm: AES, RC4, Triple DES, Blowfish, and Twofish
  • MAC Algorithms: MD5, SHA1
  • Key Exchange Algorithms: Diffie-Hellman, group exchange with SHA-1 and SHA-256

Example:

sftp security

ASP.NET Medium Trust Support

You will find that almost all other competitors dont support Medium Trust environment while our component does. The Medium Trust mode is forced by setting the MediumTrust security setting, making it possible run your web applications on shared hostings.

Tested against many SFTP Servers

  • Bitvise WinSSHD
  • CoreFTP Server
  • GlobalScape Security Server
  • GlobalScape EFT Server
  • VanDyke VShell Server
  • OpenSSH
  • WeOnlyDo wodSFTP
  • Tectica
  • XFB.Gateway
  • and many more...

Task-based and Event-based Asynchronous Patterns

Our products supports the latest Microsoft .NET Task-based Asynchronous Pattern introduced in Visual Studio 2012 - .NET 4.5. Now you can simply write your asynchronous methods using the async and await (C#) or Async and Await (VB.NET) keywords. For some reason if you would like to use Event-based Asynchronous Pattern we support it too.

Some Examples:

sftp async await

SFTP, FTP, FTP/SSL - FTPS, or SCP?

You may be confused about the names of the protocols since they seem to be similar. For example, "SFTP" sounds like an abbreviation of "Secure FTP". In fact "SFTP" and "Secure FTP" are two different protocols. To explain more details about these protocols, please see this page: SFTP, SCP, FTP, FTP/SSL - FTPS, and Secure FTP explaination and comparison.

Resources

Documentation

Testimonials

We purchased it several months ago. I really appreciated the trial -- it gave us 100% confidence that the API was the right choice.
Peter Czarnecki - Informco
We have been testing some open source and commercial ZIP, FTP and SFTP components and I found that your components is stable and affordable for our budget.
This is without a doubt that we will purchase it for our project.
Oscar Williams - Software Architect VENTUS INC.