Home Products Ultimate FTP for .NET

FTP/SSL Client Component for .NET, iOS, Android, UWP, and CF

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

Ultimate FTP is a 100%-managed .NET class library that adds powerful and comprehensive File Transfer capabilities to your .NET applications including desktop (WinForms, WPF & Console), Web, Services and more. Makes it easy to transfer files between your application and Unix, Windows, and Mainframe FTP servers.

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

Ultimate FTP for .NET is also included in

Key features

All the standard FTP 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

FTP support

  • All standard-compliant FTP servers support
  • Compliant with RFC 959, 1123, 1579, 2228, 3659, 4217, 2246, 4346, 5246 and 5746
  • Optimize default component and socket settings for maximum transfer speed
  • Parse listings automatically
  • see the complete feature list.


If you are concerned about the performance of your application while connecting and transferring files and folders to an FTP or FTP/SSL server, then the Ultimate FTP component is perfect for you. It is highly optimized for socket connections and File Transfer Protocol and is especially helpful in FTP applications where performance is key such as when transferring a large number of files and/or large files. Benefits include:

  • Minimized used resources - use less memory footprint with faster execution times
  • Performance - the maximum possible speed of data transfer and file management operations

The library also lets you set the bandwidth throttling, by setting the MaxDownloadSpeed and MaxUploadSpeed properties of the Ftp class.

ultimate ftp 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 additional code to handle the errors.

Easy-to-use and Fully Documented API

Ultimate FTP is a component offering flexibility, ease of use and rapid development features without the complexities of working with the native socket class or in-depth knowledge of how Network Protocols are implemented. In most cases, only a few lines of code are required to implement an FTP upload and download in your application. The set of properties and methods is sufficiently rich to enable you to take advantage of many features. The library is fully written in C#. It is CLS compliant and does not use any unsafe blocks for minimal permission requirements.

The component API is fully documented, making it easy to start writing code in any .NET languages like C#, VB.NET, J#, C++, or F# to connect and transfer files to your FTP servers. Our online documentation can also be integrated to your Visual Studio IDE and is shown instantly when you press F1.

ultimate sftp is intuitive and fully documented API

Sample Usage - Transferring files and directories

// Create a new instance of the Ftp class.
using (Ftp client = new Ftp())
    // 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 ftp supports .net framework and mono

Use the Same Code for FTP, SFTP, and ZIP Operations

Our Unified File System library lets you write the same code for file management with FTP, SFTP, and ZIP. You also have the capability to directly transfer files and directories from one file system to another without using intermediate disk storage. One of the benefits of having similar API across Ftp, Sftp, and Zip classes is that the time required to familiarize yourselff with a new protocol is minimized or eliminated altogether.

Some examples:

ultimate sftp supports SCP

Advanced File Management

Advanced file management tasks such as synchronously or asynchronously list, recursively search, move, delete, upload, download, check existence, synchronize files and folders by wildcard masks or search criteria all can be done with a few lines of code, making remote file management even easier than managing local disk files and directories.

Some Examples:

ultimate sftp advanced file management

Update File Transfer List On-the-fly

Do you appreciate the capability present in some FTP client programs that allows you to add and remove files and directories while the transfer is still in progress? That feature is now present in our FTP, SFTP, and ZIP components, making it easy to add new items, remove, and update existing items in the progress list.

Supports FTP/SSL

The library offers a comprehensive interface for both standard FTP and secure FTP over TLS/SSL - also known as FTP/SSL, The Ftp class also provides you events to verify the certificate and provide client certificate when requested by the server.

Some examples:

ultimate sftp supports SCP


The component is compliant with RFC 959, 1123, 1579, 2228, 2246, and 4217. It supports the following protocols:

  • TLS 1.0, 1.1 & 1.2 (RFC 2246, 4346, 5246)
  • SSL 3.0

Virtually Detect and Parse any FTP Directory Listing Format

There are a wide range of FTP listing formats and writting a program from scratch that supports almost all of them potentially would be a nightmare. Don't worry: Our component can accurately detect and parse virtually any common FTP listing formats. In addition, if you encounter a rare listing format, you can handle the ListItemReceived item to implement a custom FTP listing parser.



An impressive feature in our FTP and SFTP components is the capability to transfer files and folders using multiple threads, allowing your programs to upload/download more files simultaneously. Combined with built-in Zlib stream or MODE Z enabled, the transfer speed would be three times faster than transferring in MODE B with a single thread.

Some examples:

Support Multi-part Download

Taking advantage of the GetDownloadStream method, you can use multiple threads to download multiple parts of a file simultaneously. As a result, the speed of large file transfers is improved.


Authentication Methods

In addition to basic username/password authentication the FTP library also supports username/password/account and client certificate authentication.

Some Examples:

ultimate ftp supported authentication methods

PowerShell and SQL-SSIS

With some simple steps you can integrate UltimateFtp to the PowerShell or the SQL-SSIS package.

ultimate ftp can be used in powershell & sql-ssis

FIPS and more Security Features

The component supports the FIPS 140-2 compliant mode, and this mode is enabled automatically where only compliant algorithms are allowed. There are also classes for TLS/SSL and events for X509 certificate validation

ftp security

Firewall and Proxy

The component provides full support for passive and active transfers. In addition to HTTP, Socks4, Socks4A and Socks5 proxy servers support, the component also lets you connect to your FTP servers through FtpSite, FtpUser, and FtpOpen proxy server types.

ASP.NET Medium Trust Support

Our component supports the ASP.NET Medium Trust Environment Configuration. By turning on the MediumTrust security setting, your web application are ready to run on shared web hostings.


Ultimate FTP is used by 17K+ 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.

Choose FTP, FTP/SSL, SFTP, or SCP?

These similar-sounding protocols can be confusing and may make it difficult for developers to distinguish between them and select the right one. Please see this blog post that explains these acronyms in detail: SFTP, SCP, FTP, FTP/SSL, and Secure FTP comparison.

Modern Task-based Asynchronous Pattern

Our products support both event-based and task-based asynchronous patterns. The Task-based asynchronous patterns is introduced in .NET 4.5 - Visual Studio 2012. The online documentation has a number of examples demonstrating how to use the async and await (C#) or Async and Await (VB.NET) keywords with the component's asynchronous methods, making it easy for developers to start writing their asynchronous functions.

Some examples:

sftp async await
For more details, see the feature page.


I spent five months testing several FTP and SFTP component suites. The Ultimate FTP Expert package is superior in terms of functionality and stability. Also, their support is very professional.
Ben Hathaway - Owner Hathology
I am impressed with the components in the Ultimate Studio package. I have been developing a commercial desktop application employing virtually all of components, I have found them to be amazing, easy to use and loaded with many features.
Peter Windsor - Senior Software Developer Allocate Software