Software in Review

FTP Component for NET

Developer ComponentPro
Category Software Development
Date Added October 16, 2015
Downloads n/a | 38
License Commercial

Editor's rating + + + + +

If you have found a broken link, please contact us

Get Full Version Home Page

FTP Component for NET
Reviewed by: Diana on 2018-06-23

Robust .NET FTP/SSL Library for C# & VB.NET

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 own apps in just a few minutes.

.NET FTP Component's Key Features

• Upload, download, append, delete, rename/move files
• Multi file operations: Upload, download, delete, move...
• Parse listings automatically
• Transfer files simultaneously using multiple threads
• Multi-file operations with file masks and advanced search criterion
• Unified API - use the same for both SFTP and FTP protocols
• 1-way and 2-way directory synchronization
• Control bandwidth
• Filezilla-like transfer queue
• Check for file and directory existence
• Set file permissions
• Supports for compression zlib mode
• Supports for .NET Full Framework, Xamarin iOS, Mac, Android, Mono, .NET CF, and .NET Core, 
Standard (will be available soon)
• Supports for SSL 3.0 protocol
• Support for TLS 1.2, 1.1, 1.0. SHA-2 certificates SHA-2 hashing algorithms, AES/GCM ciphers, Elliptic 
Curve DSA & Elliptic Curve Diffie-Hellman ciphers
• Renegotiation Indication extension, Server Name Indication (SNI) extension
• All standard-compliant FTP servers support
• Active and passive modes
• Server to Server Transfer (FXP)
• Compliant with RFC 959, 1123, 1579, 2228, 3659, 4217, 2246, 4346, 5246 and 5746
• Optimize default component and socket settings for maximum transfer speed
• Optimized for performance and minimized memory footprint
• Load and generate private/public keys
• Detect time difference between the client and server.
• Fully documented API helps you create a .NET FTP client in just a few minutes
• Full source code in C# is available in the Premium licenses

Auto-reconnect and Auto-resume

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 stable without any additional complex code to handle errors when the connection to the server is unstable.

Supports FTPS

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

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 easier than ever before.

Update File List On-the-fly

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.

Modern Task-based Asynchronous Pattern

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.

What is FTP?

FTP (File Transfer Protocol) is a standard protocol used to transfer files over TCP networks (for example, the Internet). Uses the 21st port. FTP is often used to download web pages and other documents from a private development device to an open hosting server.

Supported FTP-servers

Ultimate FTP can work with all standard FTP-servers. Below is a list of our recommended FTP servers:
• Microsoft FTP service (IIS 6, IIS 7, IIS 7.5, IIS 8)
• FileZilla server
• GlobalSCAPE EFT Server
• ProFTPd
• vsFTPD
• vShell FTP
• WS_FTP Server
• Cerberus FTP Server
• Wu-FTP Server
• zFTP Server
• Wu-FTPd
• BlackMoon FTP Server
• Gene6 FTP Server
• glFTPd
• Bullet Proof
• Serv-U FTP Server
• Raiden FTPD
• Titan FTP
• War Ftp
• CompleteFTP

Creating a project using the FTP component

Let's create a simple WPF application using the FTP component

We’ll need to add the necessary links to our project. Therefore, click on "Links" and select "Add link"
We’ll need to select such links - ComponentPro.Ftp.dll, ComponentPro.Common.dll, ComponentPro.FileSystem.dll, and ComponentPro.Network.dll. Which, I remind, are in the Extensions.
Working with the code

You see a section of code that describes the basic methods for working with the FTP component. Let's review the basic methods and what they take:

// Create a new class instance.
Ftp client = new Ftp();
// Connect to the FTP server.
// Authenticate.
client.Authenticate("test", "test");
// Upload local file 'c: est.dat' to '/test.dat'.
client.UploadFile("c: est.dat", "/test.dat");
// Disconnect.

The first method that we’ll touch after creating an FTP object is the method of connecting to the server. It has 4 overloads:

The first accepts only the string representation of the server name
The second takes a string representation of the server name and the port number where you want to connect
The third takes a string representation of the server name and the SSL security mode
There are 3 modes that you choose depending on your requirements...
And the last fourth takes a string representation of the server name, port number, as well as the third parameter - connection security mode
Another example that you can consider is File Upload

// Create a new instance of the class.
Ftp client = new Ftp();
// Connect to the FTP server.
// Authentication
client.Authenticate("test", "test");
// Download all files and subdirectories from the local folder "c: temp" to the remote directory / temp’
client.Upload("c: emp", "/temp");
// Download all directories, subdirectories and files corresponding to the specified
// the search pattern, from the local folder 'c: myfolder2' to the remote '/ myfolder2' folder.
client.Upload("c:myfolder2", "/myfolder2", "*.cs");
// or you can just put the wildcards in the source path, our component will automatically parse it.
// upload all the * .css files from the local 'c: myfolder2' folder to the remote '/ myfolder2' folder.
client.Upload("c:myfolder2*.css", "/myfolder2");
// Download the * .cs and * .vb files from the local 'c: myfolder2' folder to the remote '/ myfolder2' folder.
client.Upload("c:myfolder2*.cs;*.vb", "/myfolder2");

Conclusions and recommendations

After testing this component, I was pleased with its results, as well as the architecture, the name of the methods and all the capabilities of the library. Everything is very accessible and you can easily and quickly work with this component at multiple times , only improving your application. If you are concerned about the performance of your application when you connect and transfer files and olders to FTP or FTP / SSL server, the Ultimate FTP component is perfect for you. It is optimized for
socket connections and file transfer protocol and is especially useful in FTP applications where
performance is key, for example, when transferring a large number of files and / or large files.

Advantages include:

Minimizing the resources used - using less volume with faster execution time. Performance - the highest possible data transfer speed and file management operations.

If you have found a broken link, please contact us

Get Full Version Home Page

Write your comment
Your Name:
Please enter the word above
into the Control box.
Featured Product
(BTC) Bitcoin Price Could Hit $100,000

Categories Tree
Operating Systems
Recently Added Developers
Products Archive
«        September 2021        »

Copyright © 2008-2017 TheDownloadPlanet, Inc. All Rights Reserved Terms of Use »  Disclaimer »  Privacy Policy »  Our Partners Free software - Pages in the main Google index, Pages in the supplemental Google index and Supplemental Ratio(!less is better!). Click image for more detailed information.