System.Net.FtpClient is a client implementation of the FTP protocol that is designed to be easy to use and easy to extend. Aside from normal FTP client features, it supports SSL/TLS connections for command and data channels and parsing various file listing formats. This project is being developed with C#.Information
For those interested, System.Net.FtpClient is now available via nuget
. The nuget package contains a release build of the library, the associated source code, the examples project, and the compiled help API reference. This package will be updated and pushed up to nuget.org with every future release.
The documentation page contains some important information/gotchas that you should be aware of. If you haven't already, please take a look at what's there. It might save us all some time and trouble down the road.
I've added pre-processor support for excluding Socket.Dispose() calls (introduced in .net 4) by defining NET2 as a compilation symbol. This is in an effort to make the code build for version 2 of the .net framework. Please report any problems you have with compilation and what not and I'll see what I can do to remedy the situation however I will not be building and testing against version 2 of the framework. All distributed binaries via codeplex or nuget will continue to be built against version 4.0 for the foreseeable future.Bugs
In order to get help and in turn help others by getting bugs fixed please use the discussions section where we can talk and try to get to the bottom of any problems. If you're fairly certain you've found a bug in the System.Net.FtpClient code then make a detailed bug report in the Issue Tracker. It's worth taking a look over the Source Code section and reading the commit comments to see if a particular bug has already been addressed in a newer revision than what you might be using. Please do not use the release reviews to post about errors. If you want to leave a bad review then that is your prerogative but if you want to report an error do so through the proper channels so that we can discuss the problem in a public manner that helps everyone.
When you encounter a bug there are a few important things that you can include that will go a long way in helping to resolve the matter. Aside from a good description of how to reproduce the problem, include with your report the transaction log, the exact revision number, and the exact version of the server OS and ftp software tat you were connected to when the problem occurred. I realize that some of this information may not be available but if it is please be sure to include it.
Refer to Examples\Debug.cs for information on how to easily log the server transactions. The information provided is very valuable when tracking down the source of problems.
If you are having trouble opening the CHM, right click on it, select properties and choose "Un-block" from the General Tab. If you don't trust us and don't want to unblock the file then download the source code and dig through the Examples project which includes all of the examples used in the CHM.