using (var client = new Rebex.Net.Ftp())
{
  // connect and log in
  client.Connect("test.rebex.net");
  client.Login("demo", "password");

  // download a file
  client.Download("/pub/example/readme.txt", @"C:\MyData");
}
				
Show me more code...
FTP and FTP/SSL client library for C# and VB.NET developers. Provides remote file system access using the FTP protocol. Supports FTP over TLS 1.3/1.2/1.1/1.0. Makes it easy to transfer files between your application and Unix/Windows/Mainframe FTP servers.

Choose the right component: What's the difference between FTP, FTPS, SFTP, FTP/SSL, Secure FTP and SCP?

Looking for an SSH/SFTP server component? Try Rebex File Server.
Looking for a standalone SFTP/SSH server for Windows? Try our Buru Server.

Why Rebex FTP/SSL?

Easy-to-use API

Connect, log in, download a file, disconnect. Upload all text files in a folder at once. It's easy to start developing with our library. Simple code for common use cases.

Login with... anything

  • Username and password
  • Username, password, account
  • X.509 client certificate

Rich file API

Upload a file from the filesystem or memory. Rename and move files. Check existing files. Or perform other single file SFTP operations.

Or simply transfer many files at once. Upload and download whole directory structures. Use wildcards or file sets to specify which files to transfer. Monitor transfer progress with events.

Directory operations

Need to work with directories? List their content, create or rename them. You can even delete non-empty folders recursively (and handle symlinks properly) using a single line of code.

Powerful directory listing parser

The original FTP standard defined no standard directory listing format. As a result, listings used by different FTP server on different operating system are very diverse.

Fortunately, you don't have to worry about this with Rebex FTP/SSL. It's reliable listing parser has been under continuous development since 2003 and can detect and parse virtually any common directory listing format used by Unix, Windows, Netware, DOS, VMS, IBM 4690 or Tandem Guardian FTP servers.

Even if you come across a rare format which is not yet supported out-of-the-box, can still easily add your own custom directory listing parser .

Secure file transfers

Rebex FTP/SSL supports both plain FTP and FTP secured with TLS/SSL. This protocol ensures that the file transfers are secure and reliable. Rebex FTP/SSL supports both implicit or explicit TLS/SSL and provides a rich set of security features. You'll find APIs for TLS/SSL security, X.509 certificates, and more.

  • TLS 1.3 on mainstream platforms including .NET 3.5-4.8 on Windows 7 (or Windows XP SP3 with plugins)
  • TLS 1.2, 1.1, 1.0 on all platforms (including .NET Compact Framework 3.5/3.9)
  • Elliptic Curve DSA and Elliptic Curve Diffie-Hellman ciphers (requires a plugin on some platforms)
  • AES/GCM ciphers
  • Elliptic Curve DSA and Elliptic Curve Diffie-Hellman ciphers (requires plugin on some platforms)
  • SHA-2 certificates
  • SHA-2 hashing algorithms
  • Server Name Indication (SNI) extension
  • Renegotiation Indication extension
  • Support for legacy SSL 3.0 protocol

Trusted by thousands of .NET developers worldwide

Thousands of developers chose Rebex FTP for adding FTP and SSL capabilities to their applications.

Want an example? Just check your Visual Studio installation folders and you'll find Rebex DLLs there. It's because Microsoft uses Rebex FTP and SFTP in Visual Studio and several other products.

You'll be in a good company.

Many, many more time-tested features

Rebex FTP is a mature and stable component maintained since 2003. We have been adding new features year after year, inspired by user feedback. For example:

  • Multi-file transfers
  • Transfer progress monitoring
  • Automated transfer resume
  • Server to server transfer (FXP)
  • IFtp interface - unified API for FTP, FTP/SSL and FTP
  • Transfer speed limiting
  • Ability to use FTP in SSIS, SQL CLR and PowerShell
  • Symlinks detection and handling
  • ZLIB compression
  • FIPS 140-2 compliant mode

And many, many more...

Platforms

.NET Framework

2.0-4.8

Mono

4.x, 5.x

Xamarin.iOS

Xamarin.iOS 10.3 or later

Xamarin.Android

Xamarin.Android 8.0 or later

Legacy platforms

.NET Compact Framework

3.5, 3.9

Learn more about supported standards and platforms.

Featured samples

View all 22 C# and VB.NET samples

Satisfied clients

It took me 10 minutes to plug it into our C# application and voila, passive FTP connections, excellent communication and error codes / messages when things don't connect properly via our VPN. This FTP library is excellent. I can highly recommend it.

Simon Hughes

ByBox.com

Comprehensive FTP Library Is User Friendly.

What I liked best about Rebex FTP was its concise, easy-to-use API.

I use Rebex FTP for .NET - not free but a great little FTP library.