Component Pro Ultimate FTP Expert v6.8.4155 » Developer.Team

Component Pro Ultimate FTP Expert v6.8.4155

Component Pro Ultimate FTP Expert v6.8.4155
Component Pro Ultimate FTP Expert v6.8.4155


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'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 files and directories synchronization
Control bandwidth
Filezilla-like transfer queue
Set file permissions
Supports for .NET Full Framework, Xamarin iOS, Mac, Android, Mono, .NET CF, and .NET Core, Standard (will be available soon)
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
Support for SSL 3.0 protocol
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
Optimized for performance and minimized memory footprint
Load and generate private/public keys
Detect time difference between the client and server.

Connect to an FTP server

In order to use the Ftp and other classes, you have to add references to ComponentPro.Ftp.dll, ComponentPro.Common.dll, ComponentPro.Network.dll, and ComponentPro.FileSystem.dll assemblies to your project.

To authenticate to an FTP server, you can simply perform the following steps

Add using directives to your code to create aliases for existing namespaces and avoid having to type the fully qualified type names.
Create a new instance of the Ftp class.
Now you can connect to the FTP server with Connect methods.
Call the Disconnect method to close the FTP session when done.

Explicit and Implicit SSL support

Explicit connection and Implicit connection are two secure methods used to connect to a secure FTP server. Ultimate FTP supports both Explicit and Implicit SSL modes.

It also allows you to upgrade an unsecured connection to secure or downgrade a secure connection to unsecure.

Data Transfer Encryption

To enable data transfer encryption, set the SecureDataTransfers property to true. To disable, set the that property to false.

Set connection settings

The Ftp class has several properties allowing you to set proxies, transfer mode and transfer type, Encoding, compression mode, EnabledFeatures, and more.

Get connection info

Some of the useful information about the current FTP session such as server/user name and system name are available when the connection is established or the user is authenticated.

Check connection state

To determine if a session is still alive, use GetConnectionState method. The method sends a "ping" command to the server to ensure the connection is still up and running.

Verify server's certificate

By default Ftp validates certificate received from the server automatically. However, you can extend the process for a specific purpose like asking the user whether to accept or reject the server's certificate. You can easily customize the validation process by handling the CertificateReceived event of the Ftp class.

Automatic reconnect and resume transfer on failure

Auto reconnect

When the ReconnectionMaxRetries property is set to a value greater than 0, if an operation is interrupted due to a broken connection, the component automatically determines whether it should reconnect to the server.

Auto resume

If a file transfer is in progress, the component will automatically resume transfer when the connection is re-established.

Proxy servers

The Ultimate FTP component fully supports many proxy servers (often referred to as "proxies"). If you need to connect to your FTP server through a proxy, simply create a new instance of the FtpProxy class, set the appropriate properties of the FtpProxy object, and assign it to the Proxy property of the Ftp class, and the necessary proxy communication will take place.

Authenticate with a password

To authenticate a user with password-based authentication, just use this Authenticate method overload. The first parameter is the name of the user, the second one is the user's password.

Authenticate with a client certificate

When connecting to a secure FTP/SSL server, it may ask the client for a certificate to authenticate the user. To provide a certificate for the authentication, handle the CertificateRequired event, and provide the certificate in the event handler. There are several ways doing that:

Upload and download a single file

In addition to the capability of uploading and downloading a single file, you can also specify ZLIB compression mode, ASCII or Binary transfer mode, Active and Passive mode. The library comes with a built-in support for long path on Windows. It also allow you to resume interupted file transfer, upload/download file to/from another file system other than local disk file system.

Upload data from a file or stream

It is very easy to upload data from a local file or a stream. To upload data from a stream to the remote FTP server, simply use the UploadFile method which has two parameters, or another version of the UploadFile method for transferring data starting from a specific stream position. The first parameter is the data stream object and the second one is the remote file path. It returns the number of bytes transferred.

Download a remote file to a local file or stream

To download data from the remote file to a stream, simply use the DownloadFile method which has two parameters, or another version of the DownloadFile method for transferring data starting from a specific stream position. The first parameter is the remote file path and the second one is the data stream object. It returns the number of bytes transferred.

ZLIB transfer compression

You can enable the ZLIB compression mode to speed up data transfers and communication. For highly compressible files such as text files, the compression ratio can be up to 10:1, making the ZLIB compression mode very useful. However, the transfer speed might be slower when compressing already-compressed files.

Resume single file transfers

To resume a file upload, use the ResumeUploadFile method. Similarly, to resume a file download, use the ResumeDownloadFile method. The following code snippet demonstrates how to continue a transfer that was interrupted or canceled.

ASCII and binary transfer modes

Ultimate SFTP supports two transfer mode: Binary (default) and ASCII. In binary mode (by setting the TransferType property to Binary), data is transferred as is without any processing. When text data is transferred between platforms that use different end-of-line sequences (Windows use Unix uses ), the transferred text data is unchanged and may be unfriendly presented to the user. It's essential to have the library convert the sequences automatically. To achieve that, set the TransferType property to Ascii.

Large file support

Ultimate SFTP supports two transfer modes: Binary and ASCII. The SFTP protocol's maximum supported file size is 2^63 bytes = 9,223,372 TB. However, some underlying filesystems do not support large file size. FAT16 and FAT32 are two examples; they support 2GB and 4GB maximum file size respectively. For other filesystems, see this table.

There is still a workaround for the filesystems that can't store files larger than 4GB. The stream-based file transfer API supports reading file from small pieces and combine them all together to have the large file.

Append data to an existing file

The UploadFile and DownloadFile methods make it possible to upload or download a part of a file. This is often used for appending data to an existing file, or to resume broken transfers. Of course, it is possible to write/read data to/from any other position in a file as well.

To upload and download specific file part, use three additional parameters: local offset, remote offset, and the number of bytes you want to transfer. Local offset is not required for stream-based methods - data is read/written from/to the current stream position.

Download a remote file to another file system

To download a file from an SFTP server to another file system, use the CopyTo methods.

The following example demonstrates how to connect to FTP and SFTP servers, and use the CopyTo method to directly copy a file from the SFTP file system to the FTP file system.

Upload data from a file on another file system

To upload a file from another file system to an FTP server, simply use the CopyTo methods.

The following example demonstrates how to connect to FTP and SFTP servers, and use the CopyTo method to directly copy a file from the FTP file system to the SFTP file system.

Chunk file download

Ultimate FTP allows you to break a large file into multiple ones of a smaller set size so that the file can be downloaded faster. The following code snippet illustrates how to download many small pieces of a large file simultaneously.

File permissions

Ftp class exposes flexible event-driven methods to process remote files and directories like uploading, downloading, setting file attributes, etc. By using the SetFilePermissions method, you can set permissions of a single file. The following code snippet shows you how to set permissions of a single file.

Upload and download multiple files

With a single line of code, you can transfer multiple files at once. Ultimate FTP allows using file masks as parameter for multi-file operations such as upload, download, delete, move, and set permissions. The library also let you transfer files simultaneously using multiple threads.

File masks

File masks consist of three types of symbols and their combinations:

Fixed characters: Any letter, number or character that is allowed in a file name. For example, pic.jpg refers to a single file named as �pic.jpg’.
Question Mark (?): A question mark (?) denotes any single character. For example, ?in.docx can refer to every file with a name consisting of three letters ending with �in’ and .docx as an extension like tin.docx, kin.docx, fin.docx, etc.

Asterisk (): An asterisk refers to various characters of an indefinite number. For example, at.docx can refer to all .docx files with a name starting with �a’ and ending with �t’ and can contain any number of characters in between like at.docx, ant.docx, aunt.docx, etc.

'**' is the special wildcard that is used to match any character, including directory separators. See this for more details. The above examples show that a file mask with only fixed characters refers to a single unique file (e.g. file mask my-picture.jpg refers to, and only to, a file named my-picture.jpg), while file masks containing wildcards such as �?’ or/and �*’ can refer to both single or multiple files.

Upload files

To upload multiple files (e.g. all ".dat" files), use the Upload methods. The most used Upload method overload just needs two parameters. The first one is the path to the local directory and the second one is the path to the remote directory.

Download remote files

To download multiple remote files (e.g. all ".dat" files), use the Download methods. The most used Download method overload just needs two parameters. The first one is the path to the remote directory and the second one is the path to the local directory.

Download remote files simultaneously

Downloading files and directories from the remote FTP server to the local disk is quite simple. All that needs to occur is passing appropriate server information such as hostname, port, username, password/private key and the number of threads to the Download method of the Ftp class.

The following steps illustrate how to use the Download to download files and directories.

Only for V.I.P
Warning! You are not allowed to view this text.