Home Products Ultimate SFTP Component for .NET

SFTP Library for .NET, iOS, Android, UWP, and CF

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. Ultimate SFTP makes it possible to upload, download, create, delete, and check files and directories with a few lines of code.

Ultimate SFTP supports .NET Framework, .NET CF, Mono, Xamarin iOS, Xamarin Android, and experimental platforms including Xamarin Mac, Universal Windows Platform, and Portable Class Library.

Ultimate SFTP for .NET is also included in

Key features

All the standard SFTP file and directory operations

  • Upload, download, append, rename/move, set attribute and delete a file
  • Multi-file operations with file masks and advanced search criterion
  • Optimize default component and socket settings for maximum transfer speed
  • Parse listings automatically

Advanced features

  • Unified API - use the same for both SFTP and FTP protocols
  • 1-way and 2-way files and directories synchronization
  • Filezilla-like transfer queue
  • Upload/download files simultaneously using multiple threads
  • Detect time difference between the client and server.
  • Control bandwidth
  • Load and generate private/public keys
  • Optimized for performance and minimized memory footprint

SFTP support

  • All SSH, SFTP, and SCP servers support
  • Compliant with RFC 4250-4254, 4256 and 4419
  • Optimize default component and socket settings for maximum transfer speed
  • Parse listings automatically
  • see the complete feature list.

Optimized for Transfer Speed and Memory Usage

To ensure the Ultimate SFTP library performs well, we:

  • Optimize its code following best coding practices 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, files and directories are transferred at the maximum transfer speed possible. Should you want to limit the transfer speed, take advantage of bandwidth throttling by setting the MaxDownloadSpeed and MaxUploadSpeed properties of the Sftp class.

ultimate sftp is optimized for performance

Auto-reconnect and Auto-resume

If an operation or file transfer is interrupted due to a broken connection, the component automatically determines whether it should reconnect to the server if the auto-reconnect feature is enabled. When the connection is reestablished, the component will resume the interrupted transfer. As a benefit, your application can still transfer files completely even if the connection to the server is intermittently broken without requiring code to handle the errors.

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#, this 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 shorten your learning curve. If your development environment is Visual Studio, enjoy the full integration of the online documentation. Just mark or select a keyword and press F1 in your Visual Studio IDE, and the online documentation is represented instantly.

ultimate sftp is intuitive and fully documented API

Sample Usage - Transferring files and directories

// Create a new instance of the Sftp class.
using (Sftp client = new Sftp())
    // Connect to the server.

    // Authenticate the user
    client.Authenticate(userName, password);

    // Upload the local file.
    client.UploadFile(@"c:\folder\data.dat", "/file.dat");

    // Download "*.dat" and "*.txt" files.
    client.DownloadFiles("/data/*.dat;*.txt", @"c:\data");

Support multiple platforms

Our components can be integrated to your .NET applications including Console, Windows Forms, Windows Services, Web Forms, ASP.NET MVC, WPF, Web Services, .NET CF, Xamarin Android, iOS, Mac, Universal Windows, and Windows App 8.1. You can also develop similar applications on Linux and Mac OS X with Mono. This gives you the capability to create cross-platform applications that can run on Windows, Linux, and Mac OS X operating systems.

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

  • .NET Framework: 2.0, 3.5, 4.0, 4.5.x, 4.6.x
  • Mono: 2.1, 3.x, 4.x on MAC OS X and Linux
  • .NET Compact Framework: 2.0, 3.5, 3.9 on Windows Mobile, Windows CE, Pocket PC, PDAs and Smartphones, Windows Embedded Compact 2013; Visual Studio 2005, 2008, 2012, and 2013
  • Xamarin.iOS: 8.6 or later
  • Xamarin.Android: 2.3 or later
  • Universal Windows Platform (includes Windows 10 Mobile, Windows 10 Store Apps and Windows 10 IoT) (experiment)
  • Portable Class Library for Windows Phone 8.1 and Windows 8.1 Store Apps (experiment)
ultimate sftp supports .net framework and mono

Support SCP

The library also includes SCP classes that let you perform SCP file copying easily.

Some examples:

ultimate sftp supports SCP

Unified File System Across SFTP, FTP and ZIP Libraries

To reduce the effort required to rewrite a number of classes for different systems such as FTP, SFTP, ZIP, Local Disk, and Memory, we introduce the Unified File System. This 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. The complicated work is done by the File System library, eliminating the requirement to learn more about other File Transfer Protocols. For more information, please visit this topic.

Some examples:

ultimate sftp supports SCP

Advanced File Management

Provides 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 management on a single file and multi files with wildcard masks like File Search, Delete, and Set attribute/permissions. It also supports deleting, uploading, and downloading files with real-time statistics and status of the files in progress. To add or remove a file or directory from the list of processing items, all you need to do is to call the Add or Remove method of the ProgressFileList class.


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, Ultimate SFTP 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 for 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 such as executing a command on an SSH server, starting a new SSH terminal session, reusing an 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 the SQL-SSIS package. Please see this topic for more details.

ultimate sftp can be used in powershell & sql-ssis


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

  • 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


sftp security

ASP.NET Medium Trust Support

You will find that almost all other competitors don't support Medium Trust environment; Ultimate SFTP 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...


Ultimate SFTP is used by 18K+ developers at thousands of organizations around the world. It is also the core library in our FREE LionFTP client for Windows which is used and trusted by many users.

Task-based and Event-based Asynchronous Patterns

Our products support the latest Microsoft .NET Task-based Asynchronous Pattern introduced in Visual Studio 2012 - .NET 4.5. You can simply write your asynchronous methods using async and await (C#) or Async and Await (VB.NET) keywords. If you would like to use Event-based Asynchronous Pattern, this is also supported.

Some examples:

sftp async await


You may be confused about the names of these protocols, as the acronyms seem so similar to one another. For example, "SFTP" sounds like an abbreviation of "Secure FTP", when in fact, "SFTP" and "Secure FTP" are two different protocols. For further explanation and more details about these protocols, please see this page: SFTP, SCP, FTP, FTP/SSL - FTPS, and Secure FTP explanation and comparison.


Your customer support is amazing. Detailed code examples and a friendly and helpful online documentation. Your components are amazing.
Brian Shackelford - Software Architect Municipal Technologies
Beyond having an outstanding, easy-to-implement product (UltimateSftp), ComponentPro's customer service is the best I have ever experienced with a software company. I will use them for my future component needs and will highly recommend ComponentPro to my colleagues, as well.
Brian Marshall - Senior Developer Midac Corp.