Home Products Ultimate FTP for .NET

FTP/SSL Client Component for .NET

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.

The component is also available for Xamarin Android, Xamarin iOS and .NET CF, visit Ultimate FTP Library for Mobile for more details.

Ultimate FTP for .NET is also included in


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 .NET Framework and Mono

In addition to supporting .NET Framework, the component also lets you integrate its powerful API to your Mono applications, making it possible to create cross-platform projects. For Xamarin Android, iOS and .NET Compact Framework platforms, visit our Ultimate FTP for Mobile page.

The following platforms are supported:

  • .NET Framework: 2.0, 3.5, 4.0, 4.5, 4.5.1
  • Mono: 2.1, 3.+ on MAC OS X and Linux
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
  • 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 have spent lots of effort on researching File Transfer tools on the market, I've found Ultimate FTP and SFTP to be the most flexible and easy-to-use. Now I spend less time on learning on how to use the components and more time focusing on developing our business logic layer. I will recommend this software to my friends.
Sailaja Hima - Software Developer Booya Ventures
I wanted my applications to have that bit extra, instead of just being plain and using the standard .NET FTP class. They provide excellent functionality and excellent design and usability. Well done! Highly recommended.
Mikael Stensson - Software Developer Card Network Solutions AB