FluentFTP 55.0.0
Prefix Reserveddotnet add package FluentFTP --version 55.0.0
NuGet\Install-Package FluentFTP -Version 55.0.0
<PackageReference Include="FluentFTP" Version="55.0.0" />
<PackageVersion Include="FluentFTP" Version="55.0.0" />
<PackageReference Include="FluentFTP" />
paket add FluentFTP --version 55.0.0
#r "nuget: FluentFTP, 55.0.0"
#:package FluentFTP@55.0.0
#addin nuget:?package=FluentFTP&version=55.0.0
#tool nuget:?package=FluentFTP&version=55.0.0
FluentFTP is a fully managed FTP and FTPS client library for .NET & .NET Standard, optimized for speed. It provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP transfers, UTF-8 support, Async/await support, Powershell support and more.
It is written entirely in C#, with no external dependency. It has an extensive automated test suite which tests all its functionality against local FTP server docker containers.
FluentFTP is released under the permissive MIT License, so it can be used in both proprietary and free/open source applications.
Features
- Full support for FTP, FXP, FTPS, FTPS with TLS 1.3, FTPS with client certificates and FTPS Proxies
- Full support for over 30 FTP server types with integration tests for all major servers
- File management:
- File and directory listing for all major server types (Unix, Windows/IIS, Azure, Pure-FTPd, ProFTPD, Vax, VMS, OpenVMS, Tandem, HP NonStop Guardian, IBM z/OS and OS/400, Windows CE, Serv-U, etc)
- Fully recursive directory listing and directory deletion (manual recursion and server-side recursion)
- Easily upload and download a file from the server with progress tracking
- Easily upload and download a directory from the server with easy synchronization modes
- Easily transfer a file or folder directly from one server to another using the FXP protocol
- Conditionally transfer files using rule based whitelisting and blacklisting
- Automatically verify the hash of a file & retry transfer if hash mismatches
- Configurable error handling (ignore/abort/throw) for multi-file transfers
- Easily read and write file data from the server using standard streams
- Create, append, read, write, rename, move and delete files and folders
- Recursively deletes folders and all its contents
- Get file/folder info (exists, size, security flags, modified date/time)
- Get and set file permissions (owner, group, other)
- Absolute or relative paths (relative to the "working directory")
- Compare a local file against a remote file using the hash/checksum (MD5, CRC32, SHA-1, SHA-256, SHA-512)
- Dereference of symbolic links to calculate the linked file/folder
- Throttling of uploads and downloads with configurable speed limit
- FTP monitors to monitor folders on FTP servers and trigger events when files are added/changed/removed
- FTP protocol:
- Automatic FTP/FTPS connection negotiation and detection of working connection settings
- Automatic detection of the FTP server software and its capabilities
- Automatic reconnection of FTP connections for broken or degraded sockets
- Extensive support for FTP commands, including some server-specific commands
- Easily send server-specific FTP commands using the
Execute()method - State-of-the-art security system to prevent FTP command injection, directory traversal attacks, encoding bypasses, and parser confusion attacks
- Explicit and Implicit SSL connections are supported for the control and data connections using .NET's
SslStream - Passive and active data connections (PASV, EPSV, PORT and EPRT)
- Supports Unix CHMOD, PRET, ProFTPD's SITE MKDIR and RMDIR commands, Serv-U's RMDA command
- Supports Realm and directory navigation for IBM z/OS and OS/400
- Supports all types of FTP Proxies (HTTP 1.1, SOCKS4, SOCKS4a, SOCKS5, User@Host, BlueCoat)
- FTP command logging using
TraceListeners(passwords omitted) to trace or log output to a file - SFTP is not supported as it is FTP over SSH, a completely different protocol (use SSH.NET for that)
- Asynchronous support:
- Synchronous and asynchronous methods using
async/awaitfor all operations - Asynchronous support for the
IAsyncEnumerablepattern forGetListingmethods (seeGetListingAsyncEnumerable) - All asynchronous methods can be cancelled midway by passing a
CancellationToken - All asynchronous methods honor the
ReadTimeoutand automatically cancel themselves if timed out - Asynchronous support for progress tracking of file transfers during data upload/download
- Implements its own internal locking in an effort to keep transactions synchronized
- Synchronous and asynchronous methods using
- Extensible:
- Easily add custom logging/tracing functionality using industry-standard
ILoggerinterface - Easily add support for custom non-standard FTP servers (see the Custom Servers page)
- Easily add support for more file or directory filtering rules (simply extend
FtpRule) - Easily add support for more proxy types (simply extend
FtpClientProxy) - Easily add unsupported directory listing parsers (see the
CustomParserexample) - Easily add your own Powershell commands by extending the scripts in
FluentFTP.ps1
- Easily add custom logging/tracing functionality using industry-standard
Server Support
FluentFTP is a client library that can connect to these FTP servers and perform all FTP operations.
| Server | FTP/FTPS | Integration Tests | Special Features |
|---|---|---|---|
| Azure FTP | ✔️ Detected by Domain, Auto Configuration | ||
| Apache FTP | |||
| ABB IDAL | |||
| BFTPd | |||
| Cerberus | |||
| CrushFTP | |||
| FileZilla Server | |||
| FritzBox | |||
| FTP2S3 Gateway | |||
| glFTPd | |||
| GlobalScape EFT | |||
| Homegate FTP | |||
| Huawei HG5xxx | |||
| HP NonStop/Tandem | ✔️ NonStop File Listing | ||
| IBM z/OS | ✔️ zOS API, File Listing, File Size, Paths | ||
| MikroTik RouterOS | |||
| OpenVMS | ✔️ VMS File Listing, Paths, Capability Assumption | ||
| ProFTPD | ✔️ SITE RMDIR and SITE MKDIR Commands |
||
| PureFTPd | |||
| PyFtpdLib | |||
| Rumpus | |||
| Serv-U | ✔️ RMDA Command |
||
| Solaris FTP | |||
| Titan FTP | |||
| TP-LINK | |||
| VsFTPd | |||
| Windows CE | ✔️ Windows File Listing | ||
| Windows Server/IIS | ✔️ Windows File Listing | ||
| WS_FTP | |||
| WuFTPd | ✔️ Capability Assumption | ||
| XLight |
Example Usage
To get started, check out the Quick start example in C#.
We also have extensive examples for all methods in C# and VB.NET.
Documentation and FAQs
Check the Wiki.
Tests
We have an extensive automated test suite that tests FluentFTP against many servers. We use docker to orchestrate containerized FTP servers that are used for testing.
Security
We have a state-of-the-art security system to prevent many known FTP attacks.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (236)
Showing the top 5 NuGet packages that depend on FluentFTP:
| Package | Downloads |
|---|---|
|
Peachpie.Library
Peachpie PHP language library functions. |
|
|
Zebra.Printer.SDK
The Zebra Link-OS SDK provides a powerful set of APIs enabling creation of desktop and mobile apps that take full advantage of the printer's operating system features including connectivity, printing and management tasks. |
|
|
FluentFTP.Logging
Small connector library to integrate FluentFTP with MELA Loggers (Microsoft.Extensions.Logging.Abstractions). |
|
|
mmx.utils
Package Description |
|
|
HIC.RDMP.Plugin
Core package for plugin development |
GitHub repositories (51)
Showing the top 20 popular GitHub repositories that depend on FluentFTP:
| Repository | Stars |
|---|---|
|
files-community/Files
A modern file manager that helps users organize their files and folders.
|
|
|
ShareX/ShareX
ShareX is a free and open-source application that enables users to capture or record any area of their screen with a single keystroke. It also supports uploading images, text, and various file types to a wide range of destinations.
|
|
|
duplicati/duplicati
Store securely encrypted backups in the cloud!
|
|
|
PhilippC/keepass2android
Password manager app for Android
|
|
|
1Remote/1Remote
One Remote Access Manager to Rule Them All
|
|
|
win-acme/win-acme
Automate SSL/TLS certificates on Windows with ease
|
|
|
ravendb/ravendb
ACID Document Database
|
|
|
slskd/slskd
A modern client-server application for the Soulseek file sharing network.
|
|
|
peachpiecompiler/peachpie
PeachPie - the PHP compiler and runtime for .NET and .NET Core
|
|
|
openbullet/OpenBullet2
OpenBullet reinvented
|
|
|
jayfunc/BetterLyrics
An elegant and deeply customizable lyrics visualizer & versatile music player, built with WinUI3/Win2D | 一款优雅且高度自定义的歌词可视化与全能音乐播放应用,基于 WinUI3/Win2D 构建
|
|
|
ariacom/Seal-Report
Database Reporting Tool and Tasks (.Net)
|
|
|
smartstore/Smartstore
A modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 10
|
|
|
KoalaBear84/OpenDirectoryDownloader
Indexes open directories
|
|
|
fiddyschmitt/File-Tunnel
Tunnel TCP connections through a file
|
|
|
SnapXL/SnapX
SnapX is a free, open-source, cross-platform tool that lets you capture or record any area of your screen and instantly share it with a single keypress. Upload images, videos, text, and more to multiple supported destinations—all with ease. ShareX fork
|
|
|
wabbajack-tools/wabbajack
An automated Modlist installer for various games.
|
|
|
aelassas/wexflow
Workflow Automation Engine
|
|
|
paillave/Etl.Net
Mass processing data with a complete ETL for .net developers
|
|
|
zhuxb711/RX-Explorer
一款优雅的UWP文件管理器 | An elegant UWP Explorer
|
| Version | Downloads | Last Updated |
|---|---|---|
| 55.0.0 | 0 | 9/17/2026 |
| 54.2.1 | 36,926 | 9/8/2026 |
| 54.2.0 | 995,147 | 5/26/2026 |
| 54.1.2 | 257,652 | 5/3/2026 |
| 54.1.1 | 267,902 | 4/10/2026 |
| 54.1.0 | 96,348 | 4/2/2026 |
| 54.0.3 | 103,356 | 3/28/2026 |
| 54.0.2 | 92,624 | 3/21/2026 |
| 54.0.1 | 4,275 | 3/21/2026 |
| 54.0.0 | 9,266 | 3/21/2026 |
| 53.0.2 | 2,732,813 | 10/3/2025 |
| 53.0.1 | 1,219,090 | 7/17/2025 |
| 53.0.0 | 24,375 | 7/17/2025 |
| 52.1.0 | 2,310,226 | 3/9/2025 |
| 52.0.0 | 2,099,014 | 11/30/2024 |
| 51.2.0 | 62,418 | 11/30/2024 |
| 51.1.0 | 2,211,631 | 9/13/2024 |
| 51.0.0 | 927,723 | 8/5/2024 |
| 50.1.0 | 930,240 | 6/21/2024 |
| 50.0.1 | 1,296,410 | 4/16/2024 |
- **AOT Support**
- New: FluentFTP is now fully AOT ready! This means you can use FluentFTP in projects that use Native Ahead-of-Time (AOT) compilation
- New: Rewrite core classes for AOT compatibility (`Logger`, `ValuePrinter`, `FtpAutoDetectConfig`, `FtpSslStream`)
- New: Add new C# project to test AOT compilation (`FluentFTP.AotExamples`)
- **BouncyCastle SSL Stream**
- New: FluentFTP now supports a new SSL stream backed by BouncyCastle, which allows us to fix some longstanding issues like SSL session reuse/resume which were failing with the default .NET TlsStream
- New: Integration tests for BouncyCastle stream under `FluentFTP.Tests.Integration` NS
- New: Unit tests for BouncyCastle stream under `FluentFTP.Tests.Unit.BouncyCastle` NS