.NET FTP Library

$ 199.95


"If we decide to use a component instead of building our own solution we scrutinize the component and the support. We do that because it will become expensive if you make the wrong choice. We made the right choice to use Kellerman"

Ulrich Hopp
Managing Direct
inSynergie GmbH

The .NET FTP Library by Kellerman Software is the ultimate in reliability and performance. You can actually take out the network cable during a transfer, plug it back in and it will resume right where it left off. The component also detects if the FTP Server is shutting down during the middle of your transfer. All the standard FTP operations are supported plus a multitude of other features that help to shorten development time. Transfer files faster by using directory synchronization and MODE Z compression. Securely transfer files over SSL. It also handles SSL with implicit port 990. Inform your users how long the transfer will take using powerful progress statistics.

We also have a component for performing FTP over SSH. An FTP Adapter is included that allows you to use both components from the same interface. Use the discount code FTPANDSFTP to get a discount when purchasing both.

It supports all .NET project types including .NET Framework .NET Core, Mono, Xamarin iOS, Xamarin Mac, Xamarin Android, UWP, Unity, .NET 5, and .NET 6. You can use the .NET FTP Library for C# FTP or VB.NET FTP. Why pay hundreds of dollars more for another FTP Library that is less reliable? Download the full list of features.

While it can be purchased separately, this product is also included in the Gold Suite. Gold Suite subscribers receive all product updates and all new products as part of a yearly subscription. It is the best value in the industry.


Find out about our companion .NET SFTP Component
Buy both FTP and SFTP


Feature Description
Easy to Use The .NET FTP component has a full GUI FTP client demo is included. Source code is provided in both VB.NET and in C#.
Fast Automatically detects if the remote server supports ModeZ compression and enables it during the transfer. Ability to perform multithreaded parallel upload/downloads.
Asynchronous/Synchronous Operation Files and entire directories can be transfered asynchronously or synchronously.
Rich Events Detailed progress and completion events for asynchronous operations.
Secure Transfers Kellerman FTP supports FTPS (FTP SSL), proxy servers, and passive mode for firewalls.
Raw Commands Kellerman .NET FTP supports raw command/response and raw directory listings.
Logging Option to log FTP activity to a file or memory stream.
Compression GZip and Deflate compression schemes can be used to compress/decompress and then transfer files.
Delete Subdirectories Delete all files and subdirectories within an FTP directory. It is also possible to specify a wildcard pattern for deleting files.
Directory Synchronization Entire directory structures can be synchronized. Kellerman FTP only transfers files that have changed, resulting in higher throughput.
Wildcards Wildcard patterns are supported for specifying files to transfer. It is also possible to specify the files to transfer by date range, file size or regular expression.
Resume Transfer Resume upload/download transfers by specifying a byte offset. Automatically determining the byte offset with ResumeUploadFile and ResumeDownloadFile. After an aborted asynchronous operation, Retry the operation even days later.
Documentation Industry standard formatted help and an easy to use demo is included.
100% Managed Code 100% managed code written in C#. No external dependencies or libraries are required.
Royalty Free Distribution Include with any .NET project royalty free.
1 Year Free Upgrades Purchase today and all upgrades are free for the next year.
60 Day Money Back Guarantee At Kellerman Software, we want you to be totally satisfied with your purchase. Receive a refund within 60 days when ordering from KellermanSoftware.com. Source code versions are non-refundable due to their nature.
Lifetime Support Lifetime E-mail technical support is included.

How does the .NET FTP Library stack up against the competition?

Download In Excel


"For over 10 years, Kellerman Software has provided BOOK CONNECT with reliable and evolving FTP protocol tools that have been at the heart of our publisher services.  Support has been terrific, components reliable day in and day out, and we feel very lucky to have these tools in our arsenal."

Ronok Sarkar
President, Book Connect Inc.
Book Connect Inc.

Download a free 30 day trial today.

  • Full working version
  • Includes technical support
  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.

Download Options


"We have unattended downloads to 140 computers and with the Kellerman FTP Library we were easily able to create .Net software that would ensure integrity of the files downloaded using the built in XCRC support."

Rick Jepson

The .NET FTP Library requires the following system configuration.

  • Compatible with Windows, macOS, Linux, iOS, Android and Docker.
  • Compatible with .NET Framework 4.5 and higher, .NET Core 2.0 and higher, Mono 5.4 and higher, Xamarin.iOS 10.14 and higher, Xamarin.Mac 3.8 and higher, Xamarin.Android 8.0 and higher, Universal Windows Platform 10.0.16299 and higher, Unity 2018.1 and higher, .NET 5, and .NET 6.

"We are using Kellerman FTP Library in our main application. It’s still under development and FTP Library helped us to write an online update tool within one day. Our customers are very pleased that they are able to get new features and bug fixes with just a few clicks. We are still very satisfied with this tool. We never run into any troubles, the support is great and the price is very reasonable."

Bodo Noering
Eidothea UG

Kellerman .NET FTP includes a demo with source code in VB.NET and in C#.

Using Kellerman FTP is easy. To transfer files, simply specify the server information and call a transfer method:

FTP ftp = new FTP ();
        // Set the name of the FTP server (its URL)
        ftp.HostAddress = "ftp.fsz.bme.hu" ; // A Hungarian university. change this with your FTP server
        ftp.UserName = "anonymus" ; // Replace with your user name
        ftp.Password = "user@mail.com" ; // Replace with your password
        System. Console .WriteLine( "We are downloading the a.txt file. This is a non-blocking call" );
        ftp.DownloadFileAsync( "a.txt" , "a.txt" );
        // we wait while this opperation takes place
        while (ftp.IsBusy == true )
        System.Threading. Thread .Sleep(100);
        System. Console .WriteLine( "The maximum speed for downloading a.txt was {0} KBS" , ftp.KiloBytePeak); 

Q: How do I use my license key?
A: FTP ftp = new FTP("my user name","my license key");

Q: I lost my license key how do I retrieve it?
A: Go to your account

Q: I lost my software how do I retrieve it?
A: Go to downloads

Q: Where can I download the latest version of my software?
A: Click the download tab.

Q: Does the FTP libary work with ASP.NET?
A: Yes, the encryption libary works with any .NET project type.

Q: Does the .Net FTP component support FTPS?
A: Yes, Kellerman .NET FTP supports FTPS commonly referred to as FTP/SSL by sending an AUTH_SSL command. It is compliant with the rfc2228 specification.

Q: I want to integrate the objects into my web based backend, is this possible?
A: Yes, you can use the FTP object with an ASP.NET back end, provided the FTP ports are allowed through by the web server firewalls.

Q: My company has 6 servers and 20 websites to synchronize, how does the licensing work? If we buy a license can I distribute it throughout all of our company websites?
A: The FTP .NET component is licensed on a per developer basis. If you are the only developer you may certainly use it on all 20 of your websites.

Q: Our current FTP .NET component has a file size limit of 2GB. What is the file size limit for Kellerman .NET FTP?
A: The file size limit is 9ZB ( Zetabytes).

Q: What happens when the trial expires?
A: An exception is thrown, indicating that the trial is expired.

Q: Is Kellerman FTP compatible with .NET 3.0 and .NET 3.5?
A: Kellerman FTP is compatible with .NET 2.0 and higher.

Q: Is Kellerman FTP compatible with Windows Server 2003?
A: Kellerman FTP is compatible with Windows 98SE, Windows ME, Windows XP, Windows 2000, Windows Server 2000, Windows Server 2003, and Windows Vista.

Q: Is Kellerman FTP thread safe?
A: An instance of Kellerman FTP is required for each thread. Individual instances are thread safe.

Q: Is the directory synchronization feature recursive?
A: Yes, all directories, subdirectories, and files are synchronized.

Q: I am getting the error "Could not resolve host name" how do I fix this?
A: The ASPNET account may not have access to your DNS server. Try using either the internal IP Address or external IP address of the FTP Server.

Q: Active connections only work once without recycling app pool, how do I fix this?
A: Windows Firewall is blocking your connection. Configure the firewall to allow the FTP communication through.

Date Version Description
8/11/2006 1.0 Initial Release. .NET component that allows asynchronous transfers, directory synchronization, and extended progress statistics.
9/17/2006 1.01 These enhancements have been added; the ability to process files up to 9ZB (Zettabytes) in size, and an improved help file.
11/16/2006 1.02 By customer request; added the ability to restart synchronous transfers when a network connections drops.
12/2/2006 1.03 The FTP Library now allows medium trust callers. It works with the latest Microsoft IIS Security Patch.
2/14/2007 1.06 This recent update includes a new DirectoryExists FTP method. Additional progress statistics for directories and subdirectories have been added including the current directory number and the count of directories. Fixed IsBusy timing issue.
6/15/2007 1.16 New features include Get FTP Server Type, and Send Noop. Added several more directory listing formats. Fixed Time Zone List issue with Windows Vista.
3/8/2008 2.0 This new version includes faster connection handling, more detailed logging, and many other requested features by our customers.
5/13/2008 2.06 This new update includes addtional FTP Server formats and the ability to filter directory listings by date range, byte size range, wildcards, and regular expressions.
8/16/2008 2.51 This update includes compatibility fixes for EZProxy and Titan FTP. It also includes support for FEAT, HELP, STAT, and XCRC. By enabling XCRC checking, the component will automatically check the file integrity of local files compared to FTP files.
9/13/2008 2.59 This update includes a compatibility fix for Gauntlet FTP Server when using a User Proxy. It also includes support for the lesser known ACCT command.
11/17/2008 2.63 This update fixes minor defects in the demos and includes better accuracy for progress statistics.
12/20/2008 2.72 This update includes several compatibility fixes. Compatibility fix for SSL transfers with non-RFC compliant freeFTPd Server. Fix for no root directory access problem with FTP accounts. Fix for SIZE issue with ASCII files with ProFTP Server.
4/19/2009 3.0 New features include MODE Z compression, Get Directory Listing as XML, NAT Detection, CCC Support, X509 Client Certificates, SSL Certificate Debugging, SSL Stream Debugging. The auto re-connect and auto resume feature has been greatly enhanced.
4/25/2009 3.03 By request these new features were added; FileExistsByWildcard and FileExistsByRegex. This update also fixes an issue with the GetDirectoryListingByWildcard.
8/18/2009 4.0 These powerful features were added: detection of FTP servers shutting down for maintenance windows, option to manually Retry, custom async object support, detection of FTP servers that do not support resume, parsing of linked directories and files, extended progress information, extended exception information, and FTP Session Ids.
11/2/2009 4.07 This update includes support for FTP Servers that do not support the SIZE command. It also fixes; the transfer complete event being fired multiple times when an FTP directory does not exist, and duplicate size checking during transfers.
12/18/2009 4.09 This update includes support for French and Russian Unix servers with directory listings that have no line feeds. The LastException property is now cleared on connect. The file does not exist issue has been fixed.
4/14/2010 5.0 By customer request, the FTP Library now has the ability to do Synchronize Upload and with Delete. This makes it even easier for customers synchronizing web farms. The synchronization performance has also been greatly enhanced.
5/25/2010 5.06 By several customer requests these new features are included: Framework 4.0 build (Visual Studio 2010), IPV6 compatibility, and more directory parsing formats. The upper case issue with RAW FTP on Linux has been fixed.
7/9/2010 5.12 By several customer requests these new features are included: ability to specify buffer size for faster transfers, seperate failure event, automatic append for servers that don't support restart. Bug fixes: peak byte count off, delete file returns true when the file does not exist.
9/18/2010 5.23 By request the logger has been converted from static to instance so that separate FTP instances have separate logs. Root directory sync issue has been corrected for the demo. Socket timeouts have been enhanced to deal with non standard FTP Servers that disconnect after the PASV command.
11/21/2010 5.24 This update fixes multi-line welcome messages with special characters.
12/30/2010 5.32 Changes: folder and file permissions are now shown in the file info, resolve of local PC name to when using IPV6, and Cyrillic characters are now displayed properly in directory listings.
2/24/2011 5.39 New features include: support for MLSD (Standard Directory Listing) and CLS Compliance. Fixes: synchronize upload creates directory in the root when the current directory is in the root, and after connected without action for 15 minutes IsConnected throws an exception.
4/16/2011 5.44 New feature, the ability to specify how files are synchronized, by date, by size or both. Fixes: CreateDirectory should return false if access is denied. GetDirectoryListing returns directories even when directories are requested not to be shown for some wildcard patterns. For servers that abort the transfer, if the file is already transferred completely then simply exit.
6/27/2011 5.47 Changes: allow blank FTP passwords, allow response code of 250 for an upload for MVS FTP Servers. Fix for trial mode for .NET 4.0 framework in a medium trust environment.
8/2/2011 5.48 By customer request a new method has been implemented; GetStartingBytes which allows a partial download of the first bytes of a file. This is useful for determining the file type or the headers of files.
11/30/2011 5.55 Several features have been added by customer request. New feature; Synchronize Upload and with wildcards. New feature; Any upload directory, download directory, or synchronize operation now returns a list of the files that were actually transferred. The complete event for asynchronous directory operations also have a list of the files transferred.
1/9/2012 5.57 Two compatibility issues have been addressed. The FTP now detects and handles padding of zeroes or lack of padding for XCRC responses. The FTP Library now has an option to double quote files for XCRC commands that require it.
2/10/2012 5.58 A compatibility issue has been resolved when permissions are set to denied on an FTP server for the SIZE command.
4/10/2012 5.59 By customer request, the upload synchronization now supports the ability to skip local directories with no read access.
6/26/2012 5.62 A directory listing format was added for Dragan Windows CE FTP Server.
8/18/2012 6.00 New features include MVS directory listing parsing, ability to specify the directory separator character, enhanced support for reconnect & resume for servers that do not support the SIZE command, the ability to specify excluded files for SynchronizeUpload and SyncronizeUploadWithDelete.
10/1/2012 6.01 By customer request, a FileTransferComplete event has been added.
11/5/2012 6.02 This fixes a compatibility issue with Microsoft Cloud Server.
12/21/2012 6.03 This fixes a compatibility issue with NAT with IP Addresses starting with 10.
1/4/2013 6.04 Additional logic has been added for FTP Servers that do not support the SIZE command.
2/7/2013 6.05 New features, skip files that are in use, custom logger. It also fixes a timezone compatibility issue with GetDate.
3/18/2013 6.06 By customer request, passwords are now masked in the response property of the exception. Also now supports some Windows CE FTP Servers that do not support the SIZE command. Combined paths have also been enhanced.
4/5/2013 6.08 This release has several new features requested by customers; GetAllFiles (recursively get a list of all files in a directory tree), MoveFile, better directory does not exist message when the user does not have access to a directory, and a new regex directory listing parser for Windows CE Server.
4/29/2013 6.09 This releases includes a parsing format for Omix ADA FTP Server. It also fixes a path issue in the demo.
6/25/2013 6.16 This update fixes an issue with deleting a file in the root directory on some FTP servers that incorrectly report the current working directory. Also, by customer request it adds the ability to throw an exception when there is an invalid SSL Certificate.
7/1/2013 6.18 This update fixes an SSL connection issue. Two parsing formats have also been added.
8/12/2013 6.21 Additional directory parsers included, ability to not use port 990 for implicit SSL, nicer local path verification, fixes for path combining problems.
9/17/2013 6.22 This update fixes two minor issues. There was a race condition in the demo that occured when performing an async upload and immediately performing an async download. Fix for a bug that was introduced in V6.21 where sub directories with a length of one character were not created correctly.
11/29/2013 6.23 New build for .NET Framework 4.5 and 4.5.1.
1/11/2014 6.24 By customer request, there is now a new method signature for excluding files and directories when performing a SyncDownloadWithDelete.
3/29/2014 6.24 By customer request, the library now supports UTF8Mode to support languages like cyrillic.
7/6/2014 6.30 Additional detection for some FTP servers that do not support the SIZE command. Ability to parse non-standard FTP time format. Fix for demo for creating a directory while in the middle of creating a directory. Fix for logging * when the root directory is the same as the user name.
10/4/2014 7.00 Major release. It includes the ability to synchronize directories on two different FTP servers without the use of temporary files using SiteToSiteSynchronizeDirectory. It can upload large files from one FTP site to another without the use of a temporary file using SiteToSiteTransferFile. It can create a directory and sub directories with a single line of code. It removes the dependency on System.Web so that the .NET Framework client profile can be used. There is a new cancel event that is fired when cancelling is complete.
1/7/2015 7.05 Performance improvement, remove of file exists check when not a restart.
2/8/2016 7.16 New features, ability to synchronize to the root FTP directory. The .NET FTP Library remains 100% managed code but can now also be used with COM applications.
2/24/2016 7.17 Builds for .NET Framework 4.5.2 and 4.6. The library remains 100% managed code but is now compatible with COM.
4/2/2016 7.19 Fix for FTP with TLS for .NET Framework 4.5 and higher.
9/17/2016 7.24 Two compatability fixes. Now compatible with Army Gold Version of Windows. IP resolution for internal server on IPV6 network.
12/12/2016 7.28 Fix for connecting specifically with TLS 1.2.
4/27/2017 7.31 Bug fix, it should return false when creating a directory and the user does not have access to create the directory.
6/11/2017 7.33 Compatiblity issue with changing directories on some GoDaddy FTP servers which return a non-standard response. Site to site directory synchronization fix for GoDaddy servers.
8/7/2017 8.00 Major release. Now includes version compatible with .NET Core
12/11/2017 8.05 Fix for a compatability issue for a non standard response for a file size command.
9/1/2018 8.13 New features: added ImplicitSslPort property, support for 230 response for User command for anonymous user, better handling when remote server has PASV disabled, add of Pbsz0After property for some servers that require PBSZ 0 after connecting with SSL instead of PBSZ 0 before connecting with SSL.
1/29/2019 8.17 New feature, support for EPSV command for IPV6 FTP Servers
3/1/2019 8.19 Fix for Object Reference Error when Uploading a File with EPSV command and no connection.
9/14/2019 8.22 Builds for .NET Framework 4.7, 4.7.1, 4.7.2, and 4.8.
7/16/2020 9.00 Now similar to upload/download speeds of Filezilla. New feature to autodetect the server support of ModeZ and enable for supported servers. New multi-threaded parallel upload/download of directories and files. Now compatible with .NET Standard 2.0, Mono 5.4, Xamarin.IOS 10.14, Xamarin.Mac 3.8, Xamarin.Android 8.0, UWP
7/28/2022 9.16 Fix Object Reference Error for Xamarin Forms.
12/8/2022 9.17 Fix when running under IIS
5/10/2023 9.19 Auto detect IPV6 addresses and use EPSV. Also new property to explicitly set UseExtendedPassiveMode.



Related Products