DotNetLibs FTP component and FTPS component for .NET framework. It allows you to transfer files from your application using FTP and FTPS (also known as FTP over SSL/TLS) protocols. Written entirely in managed code and works with .NET, Mono, Xamarin iOS, Android, .NET CF, UWP and Windows Phone.
Features
FTP and FTPS protocols with SSL support (FTPS component supporting explicit SSL)
Fully compatible with Microsoft IIS FTP Service, Windows CE FTP Server, Gene6, FileZilla and others
Active and Passive FTP modes
Transfer compression (zlib) resulting in 3-4 times faster data transfers
Automatic directory listing parser for the majority of popular FTP servers on Windows, Unix and Netware platforms
IPv6 support (in both FTP component and FTPS component)
UTF-8 support
Checksum validation after upload and download (XCRC, XMD5, XSHA1)
REST command support - resume file transfers after interruption
MDTM (last modified time) and SIZE (the file size) commands support
Upload and download to or from memory or disk
Stream support - read from and write to remote files on the fly
Creating and deleting files and folders
Uploading files using patterns: file (*.txt) or regex
Downloading files using patterns: file (*.txt) or regex
Deleting folders recursively
Royalty free
One year of free updates
No open source code used
100% managed C# code
Quick start samples
Upload files
using(Ftp ftp = new Ftp()) { ftp.Connect("ftp.server.com"); // or ConnectSSL for SSL ftp.Login("user", "password"); ftp.ChangeFolder("uploads"); ftp.Upload("report.txt", @"c:\report.txt"); ftp.Close(); }
Download files
using(Ftp ftp = new Ftp()) { ftp.Connect("ftp.server.com"); // or ConnectSSL for SSL ftp.Login("user", "password"); ftp.ChangeFolder("uploads"); ftp.Upload("report.txt", @"c:\report.txt"); ftp.Close(); }