FluentFTP 35.0.4

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package FluentFTP --version 35.0.4
                    
NuGet\Install-Package FluentFTP -Version 35.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FluentFTP" Version="35.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FluentFTP" Version="35.0.4" />
                    
Directory.Packages.props
<PackageReference Include="FluentFTP" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FluentFTP --version 35.0.4
                    
#r "nuget: FluentFTP, 35.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FluentFTP@35.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FluentFTP&version=35.0.4
                    
Install as a Cake Addin
#tool nuget:?package=FluentFTP&version=35.0.4
                    
Install as a Cake Tool
35.0.4
  • Fix: AutoConnect loads the newly detected FtpProfile to update properties & encryption
  • Fix: Passive connections work in FtpEncryptionMode.Auto mode and FTPS connection fails
35.0.3
  • Fix: AutoDetect correctly recommends FtpEncryptionMode.None if FTPS connection failed
  • Fix: AutoDetect crashes because attempting to read socket type after disconnected
35.0.2
  • Major: AutoDetect does not cycle through data connection types during connection as it is irrelevant
  • Major: AutoDetect calculates a data connection type after connection succeeds (EPSV or PASV)
35.0.1
  • Fix: ConnectAsync now correctly creates a FTP server-specific handler to match Connect behaviour
35.0.0
  • Automatic connection

    • Major: AutoConnect takes far fewer connection attempts due to improvements in connection handling
    • Major: AutoConnect and AutoDetect are much faster and smarter and only try each setting once if possible
    • Major: AutoDetect only tries Explicit and Implicit FTPS once and then falls back to plaintext FTP
    • Major: AutoDetect only tries UTF-8 and never ASCII because most UTF-8 servers don't advertise it
    • New: AutoDetect verifies if the server supports UTF-8 and updates the FtpProfile accordingly
    • New: FtpProfile code generation adds a warning message if the encoding mode is unverified
    • New: AutoConnectAsync now uses true asynchronous connection backed by new AutoDetectAsync
    • New: AutoConnect now auto computes an FTP port unless a non-standard port is already set
    • New: AutoConnect uses the main FtpClient connection rather than creating one clone per attempt
    • Fix: AutoConnect remains connected to the first working profile rather than connecting twice on success
    • Fix: AutoConnect reuses the same connection for FTPS and FTP rather than connecting again
    • Fix: Ensure FTP server capabilities are loaded during AutoDetect if original connection is blank
    • Fix: AutoConnect and AutoDetect will now throw exceptions for permanent failures (bad host/credentials)
    • Fix: ConnectAsync now correctly resets the state flags to match Connect behaviour
    • Fix: Port now correctly calculates the default port 21 when using FtpEncryptionMode.Auto
  • Appending and resuming uploads

    • Major: The setting FtpLocalExists.Append is now renamed to FtpLocalExists.Resume
    • Major: The setting FtpRemoteExists.Append is now renamed to FtpRemoteExists.Resume
    • Major: Split FtpRemoteExists.Append into two properties with distinct behaviour (Resume and AddToEnd)
    • Major: Improvements to UploadFile and UploadFileAsync to support appending and resuming of uploads
    • Major: UploadFile always sets the length of the remote file stream before uploading, appending or resuming
    • Major: UploadFile skips uploading in Resume mode if local and remote file are equal length
    • Fix: Implementation for resuming uploads using UploadFile based on fixes in UploadFileAsync
  • Machine listings

    • Major: GetListing prefers using Machine Listings over LIST command, unless a custom list parser is set
    • Fix: ListingParser property is updated according to auto-detected parser during Connect and ConnectAsync
    • Fix: DeleteDirectory and DereferenceLink methods no longer use ForceList and so prefer using Machine Listings
  • File hashing

    • Major: All low-level hash methods are now inaccessible and GetChecksum is the only recommended approach
    • Fix: GetChecksum now prints function call logs and sanitizes the input path
    • New: GetChecksum switches to the first preferred hash algorithm for HASH command if no algorithm is specified
    • New: GetChecksum validates if the required algorithm is unsupported and throws FtpHashUnsupportedException
    • New: GetChecksum validates if hashing is unsupported by the server and throws FtpHashUnsupportedException
    • Fix: GetChecksumAsync now takes the cancellation token last to follow conventions (argument reorder)
    • Fix: Improved extraction of hash checksum when using the HASH command
    • Fix: Improved extraction of hash checksum when using the MD5, SHA1, SHA256, SHA512 or X-series commands
    • New: SetHashAlgorithm now only modifies the hash algorithm if it has changed
  • Path sanitization

    • Fix: All high level API methods sanitize input paths to improve robustness
    • Fix: GetWorkingDirectory always sanitizes the returned working path directory
    • Fix: Correctly handle server-specific absolute FTP paths for async operations
    • Fix: All function call logs now print the sanitized path rather than raw input path
  • Path improvements

    • Major: GetWorkingDirectory is now extremely fast and caches the working dir path for subsequent calls
    • Fix: FileExists supports checking name listings for Windows NT servers which use invalid slashes
    • Fix: Root directory FTP paths no longer return ./ and instead return /
  • Other improvements

    • Major: All legacy asynchronous methods using IAsyncResult pattern have been removed (outdated since 2012)
    • Fix: FXP file transfers for glFTPd server always try PASV and CPSV commands to get passive port
    • Fix: Add logging for skipped files in UploadFile
    • Fix: Add file path details in skipped files logged by UploadFile and DownloadFile
    • New: GetNameListing to print results of name listing as verbose logs, similar to GetListing
    • New: GetFileSize and GetFileSizeAsync to support a configurable return value if the file does not exist
    • New: FtpFolderNameRule now supports startSegment to skip checking root directory folder names
    • New: FtpFolderNameRegexRule now supports startSegment to skip checking root directory folder names
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  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 was computed.  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 was computed.  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 was computed.  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 netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.4 is compatible.  netstandard1.5 was computed.  netstandard1.6 is compatible.  netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net20 is compatible.  net35 is compatible.  net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (188)

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).

HIC.RDMP.Plugin

Core package for plugin development

mmx.utils

Package Description

GitHub repositories (46)

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
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
wabbajack-tools/wabbajack
An automated Modlist installer for various games.
zhuxb711/RX-Explorer
一款优雅的UWP文件管理器 | An elegant UWP Explorer
paillave/Etl.Net
Mass processing data with a complete ETL for .net developers
aelassas/wexflow
Workflow Automation Engine
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
reactiveui/Camelotia
Cross-platform sample .NET GUI for cloud file management.
Version Downloads Last Updated
53.0.2 758,122 10/3/2025
53.0.1 817,207 7/17/2025
53.0.0 7,819 7/17/2025
52.1.0 1,518,375 3/9/2025
52.0.0 1,533,235 11/30/2024
51.2.0 35,916 11/30/2024
51.1.0 1,666,414 9/13/2024
51.0.0 701,813 8/5/2024
50.1.0 701,307 6/21/2024
50.0.1 1,074,951 4/16/2024
50.0.0 37,236 4/13/2024
49.0.2 1,789,968 1/27/2024
49.0.1 329,411 12/27/2023
49.0.0 26,083 12/25/2023
48.0.3 1,286,514 10/28/2023
48.0.2 5,308 10/28/2023
48.0.1 208,063 10/11/2023
48.0.0 266,696 9/19/2023
47.1.0 894,561 7/26/2023
35.0.4 448,313 9/5/2021
Loading failed