FluentFTP 35.0.1
Prefix ReservedSee the version list below for details.
dotnet add package FluentFTP --version 35.0.1
NuGet\Install-Package FluentFTP -Version 35.0.1
<PackageReference Include="FluentFTP" Version="35.0.1" />
paket add FluentFTP --version 35.0.1
#r "nuget: FluentFTP, 35.0.1"
// Install FluentFTP as a Cake Addin #addin nuget:?package=FluentFTP&version=35.0.1 // Install FluentFTP as a Cake Tool #tool nuget:?package=FluentFTP&version=35.0.1
Automatic connection
- Major:
AutoConnect
takes far fewer connection attempts due to improvements in connection handling - Major:
AutoConnect
andAutoDetect
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 theFtpProfile
accordingly - New:
FtpProfile
code generation adds a warning message if the encoding mode is unverified - New:
AutoConnectAsync
now uses true asynchronous connection backed by newAutoDetectAsync
- New:
AutoConnect
now auto computes an FTP port unless a non-standard port is already set - New:
AutoConnect
uses the mainFtpClient
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
andAutoDetect
will now throw exceptions for permanent failures (bad host/credentials) - Fix:
ConnectAsync
now correctly creates a FTP server-specific handler to matchConnect
behaviour - Fix:
ConnectAsync
now correctly resets the state flags to matchConnect
behaviour - Fix:
Port
now correctly calculates the default port 21 when usingFtpEncryptionMode.Auto
- Major:
Appending and resuming uploads
- Major: The setting
FtpLocalExists.Append
is now renamed toFtpLocalExists.Resume
- Major: The setting
FtpRemoteExists.Append
is now renamed toFtpRemoteExists.Resume
- Major: Split
FtpRemoteExists.Append
into two properties with distinct behaviour (Resume
andAddToEnd
) - Major: Improvements to
UploadFile
andUploadFileAsync
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 inResume
mode if local and remote file are equal length - Fix: Implementation for resuming uploads using
UploadFile
based on fixes inUploadFileAsync
- Major: The setting
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 duringConnect
andConnectAsync
- Fix:
DeleteDirectory
andDereferenceLink
methods no longer useForceList
and so prefer using Machine Listings
- Major:
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 forHASH
command if no algorithm is specified - New:
GetChecksum
validates if the required algorithm is unsupported and throwsFtpHashUnsupportedException
- New:
GetChecksum
validates if hashing is unsupported by the server and throwsFtpHashUnsupportedException
- 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
- Major: All low-level hash methods are now inaccessible and
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/
- Major:
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
andDownloadFile
- New:
GetNameListing
to print results of name listing as verbose logs, similar toGetListing
- New:
GetFileSize
andGetFileSizeAsync
to support a configurable return value if the file does not exist - New:
FtpFolderNameRule
now supportsstartSegment
to skip checking root directory folder names - New:
FtpFolderNameRegexRule
now supportsstartSegment
to skip checking root directory folder names
- Major: All legacy asynchronous methods using
Product | Versions 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. |
-
.NETFramework 2.0
- No dependencies.
-
.NETFramework 3.5
- No dependencies.
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.5
- No dependencies.
-
.NETStandard 1.4
- NETStandard.Library (>= 1.6.1)
- System.Console (>= 4.3.0)
- System.IO (>= 4.3.0)
- System.Net.NameResolution (>= 4.3.0)
- System.Net.Sockets (>= 4.3.0)
- System.Runtime (>= 4.3.0)
- System.Threading.Tasks (>= 4.3.0)
-
.NETStandard 1.6
- NETStandard.Library (>= 1.6.1)
- System.Console (>= 4.3.0)
- System.IO (>= 4.3.0)
- System.Net.NameResolution (>= 4.3.0)
- System.Net.Security (>= 4.3.2)
- System.Net.Sockets (>= 4.3.0)
- System.Runtime (>= 4.3.0)
- System.Threading.Tasks (>= 4.3.0)
- System.Threading.Thread (>= 4.3.0)
-
.NETStandard 2.0
- System.Console (>= 4.3.0)
- System.IO (>= 4.3.0)
- System.Net.NameResolution (>= 4.3.0)
- System.Net.Security (>= 4.3.2)
- System.Net.Sockets (>= 4.3.0)
- System.Runtime (>= 4.3.0)
- System.Threading.Tasks (>= 4.3.0)
- System.Threading.Thread (>= 4.3.0)
-
.NETStandard 2.1
- System.Console (>= 4.3.0)
- System.IO (>= 4.3.0)
- System.Net.NameResolution (>= 4.3.0)
- System.Net.Security (>= 4.3.2)
- System.Net.Sockets (>= 4.3.0)
- System.Runtime (>= 4.3.0)
- System.Threading.Tasks (>= 4.3.0)
- System.Threading.Thread (>= 4.3.0)
-
net5.0
- System.Console (>= 4.3.0)
- System.IO (>= 4.3.0)
- System.Net.NameResolution (>= 4.3.0)
- System.Net.Sockets (>= 4.3.0)
- System.Runtime (>= 4.3.0)
- System.Threading.Tasks (>= 4.3.0)
NuGet packages (155)
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 |
|
Microsoft.Azure.Workflows.WebJobs.Extension
Extensions for running workflows in Azure Functions |
|
FluentFTP.Logging
Small connector library to integrate FluentFTP with MELA Loggers (Microsoft.Extensions.Logging.Abstractions). |
GitHub repositories (36)
Showing the top 5 popular GitHub repositories that depend on FluentFTP:
Repository | Stars |
---|---|
files-community/Files
Building the best file manager for Windows
|
|
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!
|
|
win-acme/win-acme
A simple ACME client for Windows (for use with Let's Encrypt et al.)
|
|
ScottPlot/ScottPlot
Interactive plotting library for .NET
|
Version | Downloads | Last updated |
---|---|---|
51.0.0 | 52,288 | 8/5/2024 |
50.1.0 | 147,770 | 6/21/2024 |
50.0.1 | 401,742 | 4/16/2024 |
50.0.0 | 17,668 | 4/13/2024 |
49.0.2 | 622,378 | 1/27/2024 |
49.0.1 | 215,577 | 12/27/2023 |
49.0.0 | 18,280 | 12/25/2023 |
48.0.3 | 598,932 | 10/28/2023 |
48.0.2 | 1,306 | 10/28/2023 |
48.0.1 | 89,934 | 10/11/2023 |
48.0.0 | 162,381 | 9/19/2023 |
47.1.0 | 492,816 | 7/26/2023 |
47.0.0 | 109,490 | 7/14/2023 |
46.0.2 | 1,141,695 | 3/13/2023 |
46.0.1 | 31,204 | 3/9/2023 |
46.0.0 | 6,228 | 3/8/2023 |
45.2.0 | 97,076 | 2/24/2023 |
45.1.0 | 169,230 | 2/19/2023 |
45.0.4 | 7,924 | 2/17/2023 |
45.0.3 | 9,792 | 2/16/2023 |
45.0.2 | 2,588 | 2/16/2023 |
45.0.1 | 8,800 | 2/16/2023 |
45.0.0 | 2,251 | 2/16/2023 |
44.0.1 | 403,604 | 1/13/2023 |
44.0.0 | 2,317 | 1/13/2023 |
43.0.1 | 194,363 | 12/25/2022 |
43.0.0 | 2,226 | 12/25/2022 |
42.2.0 | 17,569 | 12/22/2022 |
42.1.0 | 227,838 | 12/1/2022 |
42.0.2 | 64,058 | 11/19/2022 |
42.0.1 | 103,099 | 11/7/2022 |
42.0.0 | 171,420 | 10/23/2022 |
41.0.0 | 159,226 | 10/2/2022 |
40.0.0 | 288,431 | 9/7/2022 |
40.0.0-beta5 | 3,779 | 9/4/2022 |
40.0.0-beta4 | 1,678 | 9/3/2022 |
40.0.0-beta3 | 1,746 | 9/3/2022 |
40.0.0-beta2 | 1,860 | 8/31/2022 |
40.0.0-beta1 | 1,728 | 8/29/2022 |
39.4.0 | 342,067 | 8/23/2022 |
39.3.0 | 134,658 | 8/15/2022 |
39.2.1 | 374,007 | 8/9/2022 |
39.2.0 | 7,960 | 8/9/2022 |
39.1.0 | 18,335 | 8/5/2022 |
39.0.1 | 90,440 | 8/1/2022 |
39.0.0 | 15,855 | 7/28/2022 |
38.0.0 | 36,255 | 7/23/2022 |
37.1.2 | 84,387 | 7/22/2022 |
37.1.1 | 45,366 | 7/17/2022 |
37.1.0 | 69,682 | 7/12/2022 |
37.0.6 | 10,438 | 7/11/2022 |
37.0.5 | 59,397 | 7/2/2022 |
37.0.4 | 47,616 | 6/28/2022 |
37.0.3 | 217,296 | 6/5/2022 |
37.0.2 | 3,140,825 | 2/27/2022 |
37.0.1 | 173,442 | 2/13/2022 |
37.0.0 | 96,866 | 2/6/2022 |
36.1.0 | 290,963 | 1/16/2022 |
36.0.0 | 32,622 | 1/12/2022 |
35.2.3 | 267,938 | 1/1/2022 |
35.2.2 | 675,701 | 12/12/2021 |
35.2.1 | 111,949 | 11/28/2021 |
35.2.0 | 253,048 | 11/21/2021 |
35.1.0 | 79,552 | 11/16/2021 |
35.0.5 | 279,799 | 10/3/2021 |
35.0.4 | 270,773 | 9/5/2021 |
35.0.3 | 2,605 | 9/4/2021 |
35.0.2 | 30,559 | 8/29/2021 |
35.0.1 | 2,504 | 8/29/2021 |
35.0.0 | 2,616 | 8/29/2021 |
34.0.2 | 279,218 | 7/31/2021 |
34.0.1 | 147,211 | 7/16/2021 |
34.0.0 | 894,062 | 5/5/2021 |
33.2.0 | 143,636 | 4/29/2021 |
33.1.8 | 39,706 | 4/27/2021 |
33.1.7 | 22,369 | 4/24/2021 |
33.1.6 | 113,182 | 4/13/2021 |
33.1.5 | 58,434 | 4/7/2021 |
33.1.4 | 15,873 | 3/31/2021 |
33.1.3 | 14,033 | 3/27/2021 |
33.1.2 | 4,707 | 3/26/2021 |
33.1.1 | 5,270 | 3/25/2021 |
33.1.0 | 3,778 | 3/25/2021 |
33.0.3 | 1,411,193 | 11/28/2020 |
33.0.2 | 283,508 | 10/22/2020 |
33.0.1 | 19,339 | 10/20/2020 |
33.0.0 | 76,577 | 10/15/2020 |
32.4.7 | 62,021 | 10/12/2020 |
32.4.6 | 5,250 | 10/9/2020 |
32.4.5 | 324,685 | 9/18/2020 |
32.4.4 | 249,906 | 8/22/2020 |
32.4.3 | 1,182,807 | 5/25/2020 |
32.4.2 | 2,563 | 5/25/2020 |
32.4.1 | 98,074 | 5/14/2020 |
32.4.0 | 80,021 | 4/25/2020 |
32.3.3 | 170,995 | 4/11/2020 |
32.3.2 | 24,912 | 4/8/2020 |
32.3.1 | 97,200 | 4/2/2020 |
32.3.0 | 25,195 | 3/27/2020 |
32.2.2 | 204,311 | 3/17/2020 |
32.2.1 | 37,141 | 3/7/2020 |
32.2.0 | 8,700 | 3/6/2020 |
32.1.1 | 30,916 | 3/5/2020 |
32.1.0 | 7,748 | 3/5/2020 |
32.0.0 | 3,208 | 3/4/2020 |
31.3.2 | 40,283 | 3/3/2020 |
31.3.1 | 103,400 | 2/21/2020 |
31.3.0 | 4,645 | 2/20/2020 |
31.2.0 | 33,276 | 2/18/2020 |
31.1.0 | 13,899 | 2/15/2020 |
31.0.0 | 7,476 | 2/13/2020 |
30.2.0 | 32,743 | 2/10/2020 |
30.1.1 | 3,514 | 2/8/2020 |
30.1.0 | 2,567 | 2/8/2020 |
30.0.0 | 116,921 | 2/1/2020 |
29.0.4 | 139,815 | 1/28/2020 |
29.0.3 | 47,243 | 1/21/2020 |
29.0.2 | 17,468 | 1/17/2020 |
29.0.1 | 46,717 | 1/11/2020 |
29.0.0 | 46,097 | 1/6/2020 |
28.0.5 | 195,347 | 12/11/2019 |
28.0.4 | 8,739 | 12/10/2019 |
28.0.3 | 6,029 | 12/7/2019 |
28.0.2 | 185,364 | 11/22/2019 |
28.0.1 | 179,667 | 10/31/2019 |
28.0.0 | 122,760 | 10/15/2019 |
27.1.4 | 30,782 | 10/8/2019 |
27.1.3 | 10,114 | 10/4/2019 |
27.1.2 | 179,949 | 9/20/2019 |
27.1.1 | 46,067 | 9/13/2019 |
27.1.0 | 50,345 | 9/9/2019 |
27.0.3 | 164,435 | 8/22/2019 |
27.0.2 | 71,629 | 8/6/2019 |
27.0.1 | 23,371 | 7/31/2019 |
27.0.0 | 53,100 | 7/24/2019 |
26.0.2 | 31,167 | 7/18/2019 |
26.0.1 | 12,411 | 7/17/2019 |
26.0.0 | 31,083 | 7/15/2019 |
25.0.6 | 52,656 | 7/11/2019 |
25.0.5 | 40,836 | 7/2/2019 |
25.0.4 | 53,914 | 6/25/2019 |
25.0.3 | 31,680 | 6/17/2019 |
25.0.2 | 4,441 | 6/17/2019 |
25.0.1 | 26,874 | 6/11/2019 |
25.0.0 | 12,451 | 6/8/2019 |
24.0.0 | 320,029 | 4/17/2019 |
23.1.0 | 255,614 | 3/5/2019 |
23.0.0 | 15,771 | 2/27/2019 |
22.0.0 | 5,733 | 2/26/2019 |
21.0.0 | 240,434 | 2/6/2019 |
20.0.0 | 96,614 | 2/4/2019 |
19.2.4 | 40,187 | 1/28/2019 |
19.2.3 | 42,783 | 1/17/2019 |
19.2.2 | 1,970,468 | 5/2/2018 |
19.2.1 | 4,379 | 5/2/2018 |
19.2.0 | 4,824 | 5/2/2018 |
19.1.4 | 6,225 | 5/2/2018 |
19.1.3 | 120,168 | 3/24/2018 |
19.1.2 | 697,545 | 11/9/2017 |
19.1.1 | 92,457 | 10/11/2017 |
19.1.0 | 65,324 | 9/29/2017 |
19.0.0 | 39,932 | 9/27/2017 |
18.0.2 | 158,043 | 8/26/2017 |
18.0.1 | 5,673 | 8/24/2017 |
18.0.0 | 9,845 | 8/11/2017 |
17.6.1 | 131,126 | 7/30/2017 |
17.6.0 | 9,425 | 7/25/2017 |
17.5.10 | 4,371 | 7/25/2017 |
17.5.9 | 13,379 | 7/18/2017 |
17.5.8 | 14,210 | 7/13/2017 |
17.5.7 | 4,715 | 7/12/2017 |
17.5.6 | 18,748 | 6/28/2017 |
17.5.5 | 48,776 | 6/27/2017 |
17.5.4 | 4,551 | 6/26/2017 |
17.5.2 | 8,769 | 6/22/2017 |
17.5.1 | 4,818 | 6/22/2017 |
17.5.0 | 5,441 | 6/17/2017 |
17.4.4 | 27,052 | 6/8/2017 |
17.4.3 | 4,154 | 6/8/2017 |
17.4.2 | 9,193 | 5/26/2017 |
17.4.1 | 8,649 | 5/24/2017 |
17.4.0 | 14,631 | 5/21/2017 |
17.3.0 | 4,541 | 5/19/2017 |
17.2.0 | 10,588 | 5/12/2017 |
17.1.0 | 4,299 | 5/11/2017 |
17.0.0 | 4,303 | 5/11/2017 |
16.5.0 | 6,658 | 5/6/2017 |
16.4.1 | 7,830 | 4/29/2017 |
16.4.0 | 26,145 | 4/9/2017 |
16.3.0 | 46,923 | 3/14/2017 |
16.2.5 | 6,109 | 3/10/2017 |
16.2.4 | 12,789 | 2/25/2017 |
16.2.3 | 6,221 | 2/22/2017 |
16.2.2 | 11,924 | 2/18/2017 |
16.2.1 | 51,003 | 2/1/2017 |
16.2.0 | 4,640 | 1/30/2017 |
16.1.0 | 4,415 | 1/29/2017 |
16.0.19 | 4,941 | 1/26/2017 |
16.0.18 | 5,194 | 1/18/2017 |
16.0.17 | 61,227 | 1/5/2017 |
16.0.16 | 5,421 | 12/16/2016 |
16.0.15 | 7,280 | 12/3/2016 |
16.0.14 | 5,248 | 11/25/2016 |
16.0.13 | 22,528 | 11/2/2016 |