FluentFTP 35.0.3

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.3                
NuGet\Install-Package FluentFTP -Version 35.0.3                
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.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FluentFTP --version 35.0.3                
#r "nuget: FluentFTP, 35.0.3"                
#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.
// Install FluentFTP as a Cake Addin
#addin nuget:?package=FluentFTP&version=35.0.3

// Install FluentFTP as a Cake Tool
#tool nuget:?package=FluentFTP&version=35.0.3                
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. 
.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 (159)

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.

HIC.RDMP.Plugin

Core package for plugin development

FluentFTP.Logging

Small connector library to integrate FluentFTP with MELA Loggers (Microsoft.Extensions.Logging.Abstractions).

Microsoft.Azure.Workflows.WebJobs.Extension

Extensions for running workflows in Azure Functions

GitHub repositories (36)

Showing the top 5 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 program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
duplicati/duplicati
Store securely encrypted backups in the cloud!
ScottPlot/ScottPlot
Interactive plotting library for .NET
win-acme/win-acme
A simple ACME client for Windows (for use with Let's Encrypt et al.)
Version Downloads Last updated
51.1.0 300,156 9/13/2024
51.0.0 237,931 8/5/2024
50.1.0 278,517 6/21/2024
50.0.1 575,729 4/16/2024
50.0.0 22,327 4/13/2024
49.0.2 876,873 1/27/2024
49.0.1 239,850 12/27/2023
49.0.0 18,915 12/25/2023
48.0.3 734,733 10/28/2023
48.0.2 1,359 10/28/2023
48.0.1 104,156 10/11/2023
48.0.0 178,130 9/19/2023
47.1.0 549,603 7/26/2023
47.0.0 118,887 7/14/2023
46.0.2 1,259,530 3/13/2023
46.0.1 33,399 3/9/2023
46.0.0 6,795 3/8/2023
45.2.0 101,828 2/24/2023
45.1.0 194,555 2/19/2023
45.0.4 8,016 2/17/2023
45.0.3 10,456 2/16/2023
45.0.2 2,656 2/16/2023
45.0.1 9,356 2/16/2023
45.0.0 2,342 2/16/2023
44.0.1 438,205 1/13/2023
44.0.0 2,384 1/13/2023
43.0.1 219,391 12/25/2022
43.0.0 2,313 12/25/2022
42.2.0 19,499 12/22/2022
42.1.0 250,595 12/1/2022
42.0.2 69,945 11/19/2022
42.0.1 115,862 11/7/2022
42.0.0 180,981 10/23/2022
41.0.0 165,241 10/2/2022
40.0.0 311,783 9/7/2022
40.0.0-beta5 3,829 9/4/2022
40.0.0-beta4 1,710 9/3/2022
40.0.0-beta3 1,797 9/3/2022
40.0.0-beta2 1,915 8/31/2022
40.0.0-beta1 1,764 8/29/2022
39.4.0 382,639 8/23/2022
39.3.0 141,512 8/15/2022
39.2.1 393,424 8/9/2022
39.2.0 8,747 8/9/2022
39.1.0 19,395 8/5/2022
39.0.1 94,659 8/1/2022
39.0.0 16,615 7/28/2022
38.0.0 39,834 7/23/2022
37.1.2 92,441 7/22/2022
37.1.1 48,583 7/17/2022
37.1.0 75,254 7/12/2022
37.0.6 11,708 7/11/2022
37.0.5 61,844 7/2/2022
37.0.4 50,223 6/28/2022
37.0.3 227,917 6/5/2022
37.0.2 3,449,134 2/27/2022
37.0.1 178,199 2/13/2022
37.0.0 107,734 2/6/2022
36.1.0 305,782 1/16/2022
36.0.0 33,780 1/12/2022
35.2.3 305,780 1/1/2022
35.2.2 697,238 12/12/2021
35.2.1 118,640 11/28/2021
35.2.0 266,003 11/21/2021
35.1.0 81,424 11/16/2021
35.0.5 296,043 10/3/2021
35.0.4 292,658 9/5/2021
35.0.3 2,647 9/4/2021
35.0.2 31,380 8/29/2021
35.0.1 2,537 8/29/2021
35.0.0 2,752 8/29/2021
34.0.2 298,870 7/31/2021
34.0.1 153,934 7/16/2021
34.0.0 947,220 5/5/2021
33.2.0 144,893 4/29/2021
33.1.8 42,011 4/27/2021
33.1.7 24,055 4/24/2021
33.1.6 116,319 4/13/2021
33.1.5 59,146 4/7/2021
33.1.4 16,248 3/31/2021
33.1.3 14,322 3/27/2021
33.1.2 4,873 3/26/2021
33.1.1 5,337 3/25/2021
33.1.0 3,829 3/25/2021
33.0.3 1,471,926 11/28/2020
33.0.2 292,434 10/22/2020
33.0.1 19,974 10/20/2020
33.0.0 79,709 10/15/2020
32.4.7 63,819 10/12/2020
32.4.6 5,333 10/9/2020
32.4.5 333,071 9/18/2020
32.4.4 262,213 8/22/2020
32.4.3 1,219,336 5/25/2020
32.4.2 2,624 5/25/2020
32.4.1 99,937 5/14/2020
32.4.0 82,622 4/25/2020
32.3.3 183,878 4/11/2020
32.3.2 25,572 4/8/2020
32.3.1 100,474 4/2/2020
32.3.0 25,559 3/27/2020
32.2.2 212,808 3/17/2020
32.2.1 38,198 3/7/2020
32.2.0 8,896 3/6/2020
32.1.1 33,369 3/5/2020
32.1.0 7,790 3/5/2020
32.0.0 3,295 3/4/2020
31.3.2 43,597 3/3/2020
31.3.1 108,393 2/21/2020
31.3.0 4,744 2/20/2020
31.2.0 33,729 2/18/2020
31.1.0 14,222 2/15/2020
31.0.0 7,648 2/13/2020
30.2.0 34,421 2/10/2020
30.1.1 3,555 2/8/2020
30.1.0 2,618 2/8/2020
30.0.0 118,693 2/1/2020
29.0.4 140,979 1/28/2020
29.0.3 48,613 1/21/2020
29.0.2 20,292 1/17/2020
29.0.1 47,453 1/11/2020
29.0.0 47,664 1/6/2020
28.0.5 199,989 12/11/2019
28.0.4 9,652 12/10/2019
28.0.3 6,249 12/7/2019
28.0.2 204,609 11/22/2019
28.0.1 185,197 10/31/2019
28.0.0 126,720 10/15/2019
27.1.4 32,420 10/8/2019
27.1.3 10,175 10/4/2019
27.1.2 185,973 9/20/2019
27.1.1 46,729 9/13/2019
27.1.0 50,776 9/9/2019
27.0.3 167,532 8/22/2019
27.0.2 73,633 8/6/2019
27.0.1 23,715 7/31/2019
27.0.0 54,887 7/24/2019
26.0.2 32,258 7/18/2019
26.0.1 12,805 7/17/2019
26.0.0 33,363 7/15/2019
25.0.6 53,788 7/11/2019
25.0.5 41,161 7/2/2019
25.0.4 56,734 6/25/2019
25.0.3 33,759 6/17/2019
25.0.2 4,512 6/17/2019
25.0.1 27,227 6/11/2019
25.0.0 13,277 6/8/2019
24.0.0 327,425 4/17/2019
23.1.0 264,698 3/5/2019
23.0.0 16,072 2/27/2019
22.0.0 5,840 2/26/2019
21.0.0 246,973 2/6/2019
20.0.0 97,339 2/4/2019
19.2.4 41,951 1/28/2019
19.2.3 44,289 1/17/2019
19.2.2 2,024,711 5/2/2018
19.2.1 4,424 5/2/2018
19.2.0 4,875 5/2/2018
19.1.4 6,681 5/2/2018
19.1.3 123,200 3/24/2018
19.1.2 708,676 11/9/2017
19.1.1 96,195 10/11/2017
19.1.0 67,449 9/29/2017
19.0.0 41,030 9/27/2017
18.0.2 160,438 8/26/2017
18.0.1 5,724 8/24/2017
18.0.0 10,176 8/11/2017
17.6.1 139,325 7/30/2017
17.6.0 9,474 7/25/2017
17.5.10 4,411 7/25/2017
17.5.9 13,466 7/18/2017
17.5.8 15,036 7/13/2017
17.5.7 4,769 7/12/2017
17.5.6 18,997 6/28/2017
17.5.5 51,073 6/27/2017
17.5.4 4,593 6/26/2017
17.5.2 8,898 6/22/2017
17.5.1 5,000 6/22/2017
17.5.0 5,486 6/17/2017
17.4.4 27,377 6/8/2017
17.4.3 4,194 6/8/2017
17.4.2 9,791 5/26/2017
17.4.1 8,967 5/24/2017
17.4.0 14,697 5/21/2017
17.3.0 4,610 5/19/2017
17.2.0 10,743 5/12/2017
17.1.0 4,336 5/11/2017
17.0.0 4,358 5/11/2017
16.5.0 6,796 5/6/2017
16.4.1 8,147 4/29/2017
16.4.0 26,523 4/9/2017
16.3.0 49,871 3/14/2017
16.2.5 6,248 3/10/2017
16.2.4 12,865 2/25/2017
16.2.3 6,297 2/22/2017
16.2.2 11,986 2/18/2017
16.2.1 52,409 2/1/2017
16.2.0 4,686 1/30/2017
16.1.0 4,465 1/29/2017
16.0.19 4,998 1/26/2017
16.0.18 5,235 1/18/2017
16.0.17 61,789 1/5/2017
16.0.16 5,559 12/16/2016
16.0.15 7,326 12/3/2016
16.0.14 5,429 11/25/2016
16.0.13 26,574 11/2/2016