Ultimate FTP .NET class library lets you add the comprehensive file transfer capability to your apps. It can be integrated into a wide range of .NET platforms including WinForms, Windows Services, WPF & Console, ASP.NET, UWP, Xamarin iOS, Android, Mac, and .NET CF. The FTP component makes it easy to secure connections using SSL layer and transfer files between your application and Unix, Windows, and Mainframe FTP servers. With a few lines of code, you can create, upload, download, modify, delete, set permissions, and manage files and directories on a remote server. It's written purely in C# with many advanced optimizations to deliver the best performance. It also includes lots of VB and C# FTP client examples to help you get familiar with the API and write your apps in just a few minutes.


And see why tens of thousands of developers worldwide choose ComponentPro
Download Your Free 30 Day TrialList of the supported platforms
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 critical such as when transferring a large number of files and/or large files. Benefits include:
The library also lets you set the bandwidth throttling by setting the MaxDownloadSpeed and MaxUploadSpeed properties of the Ftp class.
The .NET FTP library allows your application to automatically reconnect to the server when a connection is lost while transferring files. If a transfer is interrupted, the Ftp class can resume the transfer right after the connection is re-established. This feature makes your applications work stably without any additional complex code to handle errors when the connection to the server is unstable.
Ultimate .NET FTP Component offers 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 perform 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 written 100% in C# without any unsafe blocks to maximize its compatibility when using in other .NET languages and minimize 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 remote FTP servers. When the package is installed with full documentation integration option, the help topics for a marked type or member will show instantly when pressing F1 in the Visual Studio IDE.
There are a wide range of formats and writing 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 standard listing formats. Besides, if you encounter a rare one, you can handle the ListItemReceived item to implement a custom FTP listing parser.
Example:
Our Unified API lets you have the same file management code for FTP, SFTP, and ZIP. You can directly transfer items from one file system to another without using intermediate disk storage. The top benefit of having similar API across Ftp, Sftp, and Zip classes is that you spend less time to familiarize with a new network protocol or class.
Some examples:
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 easier than ever before.
Some Examples:
In addition to basic username/password authentication, the library also supports username/password/account and client certificate authentication.
Some examples:
Do you appreciate the capability present in some FTP client programs that allows you to add and remove items 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.
An impressive feature in our FTP and SFTP products 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:
When downloading a large remote file, you can split it into smaller chunks and download them asynchronously using the MultiPartDownload method. For more information, please have a look at this topic: Chunk file download
With some simple steps, you can integrate UltimateFtp to the PowerShell or the SQL-SSIS package.
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 remote servers through FtpSite, FtpUser, and FtpOpen proxy server types.
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.
Our component supports the ASP.NET Medium Trust Environment Configuration. By turning on the MediumTrust security setting, your web application is ready to run on shared web hostings.
7K+ developers at thousands of organizations around the world trust our FTP product. We also use it as the core library of our FREE LionFTP client for Windows.
Our products support both event-based and task-based asynchronous operations. 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:
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.
Over 10,000 customers globally integrate our libraries in their applications
Hear what customers say about our products