NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #855 most downloaded on NuGet
An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP transfers, UTF-8 support, Async/await support, Powershell support and more. Written entirely in C#, with no external dependencies.
Last release 16 days ago
17 Sep 2026
Release timing varies
gaps range from 8 days to 6 months
Most releases are documented
notes for 49 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
221 releases · first in 2016
Add IFtpClient interface to build unit tests upon main FtpClient class (thanks Kris0)
Breaking changes to Async API of GetModifiedTime (addition of type argument)
SetModifiedTime API to change modified date of a server file in local timezone/UTC
GetModifiedTime, allowing for getting dates in UTC/Local timezoneGetModifiedTime (addition of type argument)GetModifiedTime and SetModifiedTime now honor the TimeOffset property in FtpClientcheckIfFileExists to OpenRead, OpenAppend and OpenWrite to skip GetFileSize checkInnerException is null during a file transfer (upload/download)One column per quarter.
Fix for CreateDirectory and DirectoryExists to allow null/blank input path values
CreateDirectory and DirectoryExists to allow null/blank input path values
GetFtpDirectoryName to return correct parent folder of simple folder paths (thanks ww898)Add argument validation for missing/blank arguments in : Upload, Download, UploadFile(s), DownloadFile(s), GetObjectInfo, DeleteFile, DeleteDirectory,
Upload, Download, UploadFile(s), DownloadFile(s), GetObjectInfo, DeleteFile, DeleteDirectory, FileExists, DirectoryExists, CreateDirectory, Rename, MoveFile, MoveDirectory, SetFilePermissions, Chmod, GetFilePermissions, GetChmod, GetFileSize, GetModifiedTime, VerifyTransfer, OpenRead, OpenWrite, OpenAppend
PlatformUnsupported exception (if you need async you are free to contribute a non-blocking version of the methods)Nothing published for this version
Increase performance of GetListing by reading multiple lines at once (BulkListing property, thanks sierrodc)
GetListing by reading multiple lines at once (BulkListing property, thanks sierrodc)Add support for parsing AS400 listings inside a file (5 fields) (thanks rharrisxtheta)
Honor UploadDataType and DownloadDataType in all sync/async cases (thanks rharrisxtheta)
UploadDataType and DownloadDataType in all sync/async cases (thanks rharrisxtheta)
Fix NullReferenceException when arguments are null during FtpTrace.WriteFunc
NullReferenceException when arguments are null during FtpTrace.WriteFuncRemove internal locking for .NET Standard 1.4 version since unsupported on UWP
Remove dependency on System.Threading.Thread for .NET Standard 1.4 version (for UWP)
System.Threading.Thread for .NET Standard 1.4 version (for UWP)Add support for .NET 3.5 and .NET Standard 1.4 (supports Universal Windows Platform 10.0)
Add FtpTrace.LogToConsole and LogToFile to control logging in .NET core version
FtpTrace.LogToConsole and LogToFile to control logging in .NET core versionAdd PlainTextEncryption API to support FTPS servers and plain-text FTP firewalls (CCC command)
PlainTextEncryption API to support FTPS servers and plain-text FTP firewalls (CCC command)
FtpSslStream)Add logging for high-level function calls to improve remote debugging (FtpTrace.LogFunctions)
FtpTrace.LogFunctions)
FtpTrace.LogIP, LogUserName, LogPassword)RecursiveList to control if recursive listing should be usedDeleteDirectory()Nothing published for this version
Major release with lots of new and exciting features:
Major release with lots of new and exciting features:
force and fastMode args are no longer requiredexistsMode to UploadFile() and UploadFiles() allowing for skip/overwrite and appendFix parsing of LinkTarget during GetListing() on Unix FTP servers
LinkTarget during GetListing() on Unix FTP servers
Add MoveFile() and MoveDirectory() to move files and directories safely
MoveFile() and MoveDirectory() to move files and directories safelyAutomatically verify checksum of a file after upload/download (thanks jblacker)
Simplify DeleteDirectory() API - the force and fastMode args are no longer required
DeleteDirectory() API - the force and fastMode args are no longer required
DeleteDirectory() is faster since it uses one recursive file listing instead of manySplit stream API into Upload()/UploadFile() and Download()/DownloadFile()
Upload()/UploadFile() and Download()/DownloadFile()Greatly improve performance of FileExists() and GetNameListing()
FileExists() and GetNameListing()
GetListing() and GetObjectInfo()GetObjectInfo() even if machine listings are not supported by the serverexistsMode to UploadFile() and UploadFiles() allowing for skip/overwrite and appendGetReply() is now public so users of OpenRead/OpenAppend/OpenWrite can call it afterAdd async/await support to all methods for .NET 4.5 and onwards (thanks jblacker)
Nothing published for this version
Support for .NET Standard 1.4 added.
Nothing published for this version
Add UploadFiles() and DownloadFiles() which is faster than single file transfers
UploadFiles() and DownloadFiles() which is faster than single file transfers
First .NET Core release (DNXCore5.0) using Visual Studio 2017 project and shared codebase.
Nothing published for this version
Nothing published for this version
Add FtpListOption.IncludeSelfAndParent to GetListing
FtpListOption.IncludeSelfAndParent to GetListingNothing published for this version
Use streams during upload/download of files to improve performance with large files
Nothing published for this version
Add high level API for UploadFile() and DownloadFile()
Add high level API for UploadFile() and DownloadFile()
Support FTP proxies, and many fixes related to those.
Added Serializable attribute to defined Exceptions
Fix DeleteDirectory infinite recursion calls when GetListing
Fix issues with GetListing() on anonymous login
UploadFile() and DownloadFile()Added high-level UploadFile() and DownloadFile() API. Fixed some race conditions.
UploadFile() and DownloadFile() API. Fixed some race conditions.Nothing published for this version
Nothing published for this version
Added support for FTP proxies using HTTP 1.1 and User@Host modes. (thanks L3Z4)
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →