Overview
Ultimate FTP is a 100%-managed .NET class library that adds powerful
and comprehensive File Transfer capabilities to your .NET applications. In addition, the component can run on Medium-Trust ASP.NET servers.
If you need FTP component for .NET CF, visit
FTP Component for .NET Compact Framework.

| Standard License Without Source Code | Premium License With Source Code |
1 Developer 1 Year Subscription | $299 | $599 |
1 Developer Life-time Subscription | $599 | $1,199 |
Company 1 Year Subscription | $1,299 | $2,599 |
Company Life-time Subscription | $2,599 | $5,199 |
Subscription:
1 Year: Provides updates, new products and access to priority support for one year
Life-time: Provides updates, new products and access to priority support for life-time
from $299
The Ultimate FTP/FTPS (FTP over TLS/SSL) .NET Component offers a comprehensive interface
for FTP, enabling you to quickly and easily incorporate Standard File Transfers and Secure File Transfers over TLS/SSL in your applications, as well as remote file management using
FTP.
In addition to downloading and uploading by file name, URL, and
wild card masks, the FTP library also supports remote file management functionality
such as directory listings and the ability to rename, delete
and move files on the server. The component also offers the flexibility,
ease of use and rapid development features of a component without the complexities
of working with the native socket class or in-depth knowledge of how the File Transfer
Protocols are implemented. In most cases, only a few lines of code are required
to implement a file transfer in your application. The set of properties and methods
is sufficiently rich to enable you to take advantage of features such as the resumption
of interrupted transfers, passive mode operation in the presence of firewalls,
automatic file verification and support for custom server commands.
In addition to supporting standard file transfers, the Ultimate FTP Component also supports multi-thread file transfers as well as data compression on-the-fly with built-in Zlib classes to speed up the transfers.
To reduce your effort writing a number of classes for different file systems such as FTP, SFTP, ZIP, Local Disk, and Virtual Disk,
we introduce the Unified File System that makes the management of files on these systems seamless. Moreover, it allows you to use the same code to transfer files and directories directly from one to other file systems. As a benefit, you should only need to write one class that works with these file systems nicely. There is no need to learn more about other File Transfer Protocols, all the complicated work is done by the Ultimate File System. For more information, please
visit this topic.
To help you to become familiar with the features of the component, a number of well documented samples and topics were added to the comprehensive integrated online documentation which can be found at this web page.
If you need SSH Secure FTP (SFTP) Component, please visit SSH Secure FTP (SFTP) Library page.
Ultimate Ftp is also included in the following suites which are bundles that include many additional .NET components:
Key Features
- Upload, download, append, rename and delete file.
- Upload, download, or Remove entire directory (including subdirectories and files) quickly with a single line of code
- Upload and download multiple files using wildcards mask with a single line of code
- Support for files over 4GB
- Parse listings automatically
- Supports both ASCII and binary transfers
- Supports restarting interrupted file transfers
- Abort operations smoothly
- Synchronizes folders easily
- Supports Multi-threading. You can use as many threads as you want to speed up file transfers
- Unified Remote File System allows you to directly and easily transfer and synchronize files between an FTP file system and other file systems such as FTP, SCP, ZIP, Disk, Memory, etc.
- File transfer monitoring support with progress event
- Fully supports both event-driven (asynchronous) and blocking (synchronous) application designs
- Send and receive files to or from disk or memory streams. This allows you to compress and decompress ZIP files on-the-fly
- Built-in Zlib streams
- Filter files on name with wildcards mask or regular expression, size, or last modified date
- Resume previously interrupted file
- Allows you to check the exact transferring state like uploading, downloading, etc.
- Compliant with RFC 959, RFC 1579 and many common extensions
- Progress event argument contains full information about the file transfer such as:
File size, transfer percentage, transfer speed, time left, etc.
- Compression support (MODE Z)
- Reusable block mode transfer support (MODE B)
- Raw FTP command and response support
- Supports ASP.NET Medium Trust environment configuration
- more...
Sample Usage - Transferring files and directories
// Create a new instance of the Ftp class.
Ftp client = new Ftp();
// Connect to the FTP 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.UploadDirectory("c:\\temp", "/");
// Download an entire directory.
client.DownloadDirectory("myremotedir", "c:\\temp");
// Disconnect.
client.Disconnect();
' Create a new instance of the Ftp class.
Dim client As New Ftp()
' Connect to the FTP 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")
Dim defaultDir As String = 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.UploadDirectory("c:\temp", "/")
' Download an entire directory.
client.DownloadDirectory("myremotedir", "c:\temp")
' Disconnect.
client.Disconnect()
Security and Reliability
The Ultimate FTP Component for .NET Framework also supports secure SSL and TLS connections.
By simply setting a few properties, a secure connection using 128-bit encryption can be established,
providing your application with the greatest flexibility and highest level of security available.
Even advanced options such as client certificates are seamlessly supported.
The security features are completely integrated into the component itself,
meaning that there's no external dependencies on third-party components or libraries.
Supports HTTP Connect, SOCKS4, SOCKS4A & SOCKS5 Proxy Servers
Ultimate FTP provides full support for Proxy Servers such as HTTP CONNECT, SOCKS4,
SOCKS4A, and SOCKS5. By simply setting a few properties, you are able to
download and upload files and directories from/to FTP servers through the desired proxy
server.
Support for IPv6, the next generation Internet protocol
IPv6 (Internet Protocol version 6), the next-generation protocol designed by the
IETF (Internet Engineering Task Force), will gradually replace the current version
of the Internet Protocol, IPv4.
With Ultimate FTP Component, users have an integrated service assurance solution
that will provide them with FTP, and Proxy capabilities in mixed IPv4 and IPv6
environments. This helps organizations with the adoption of and the transition to
IPv6 by making the management of such networks seamless.
.NET Technology
By using 100% managed code written in C#, the Ultimate FTP component takes
advantage of the numerous built-in features of the .NET Framework to enhance performance,
moreover, the component is CLS compliant, and it does not use any unsafe blocks
for minimal permission requirements. In addition, the component is highly compatible with Microsoft ClickOnce.
Ultimate FTP Component for .NET supports the following platforms:
- Windows Forms
- Web Forms
- Web Services
In addition, it is also possible to use the component in
PowerShell - Microsoft’s new command console and scripting language.
Ultimate FTP is fully compatible with Visual Studio 2005 (.NET 2.0) and Visual Studio
2008 (.NET 3.5), as well as Visual Studio 2010 (.NET 4.0). As a benefit,
you are always up-to-date with Microsoft's Technologies when using our products.
Supports event-driven (Asynchronous) and blocking (Synchronous) Design
Most applications written with the FTP component will be synchronous. Synchronous
method gives you the ease-of-use, but it can only returns the control back to the
caller after it has finished, meaning that it blocks the execution of the caller
for a period of time. Using synchronous method is recommended when you only need
to execute one FTP operation at a time.
You might decide that your design requires an asynchronous operation when it is
needed to manage email messages simultaneously. Asynchronous methods provide a great
deal of power. Asynchronous method is executed on a thread separate from the calling
thread. Such operation is useful when an FTP operation is time consuming and other
codes need to execute without waiting for the initial operation to complete. In
addition, the user interface will be most responsive when asynchronous methods are
used.
Flexibility
The FTP component can be used with a wide variety of programming languages and different types of development
environments. As it was written in 100% managed Visual C#, it is fully supported by languages
such as Visual Basic, Visual C#, J#, Managed C++, Borland
C# Builder, and Delphi.
Fully Documented
We know that no product can be complete without comprehensive documentation. This is why the ComponentSoft
FTP for .NET product includes a Developer's Guide and a complete Technical Reference
which documents every property, method and event supported by the component. A context-sensitive
online help is included with the product which can be accessed directly from within the development environment.
Lots of complete FTP client samples in C#, VB.NET, and ASP.NET
In addition to the fully documented Developer's Guide and a complete Technical Reference,
Ultimate FTP component also includes a number of samples with full source code
which help you to become familiar with the features of the component and provide
code which you can re-use in your own applications.
The setup package contains three
complete FTP client applications: FTP Console Client, FTP WinForms Client,
and FTP AJAX WebForms Client.
Royalty-free and Unlimited Server Deployment
All ComponentSoft products include royalty-free distributation, for unlimited site deployment.
It means applications built using the Ultimate FTP component can be redistributed to as many end-users as needed
without additional royalties or runtime licensing fees.