Click here to Skip to main content
Click here to Skip to main content

An "easy to use" FTP client library

, 10 May 2006
Rate this:
Please Sign up or sign in to vote.
Get connected to your FTP server


The .Net Framework 2.0 has built-in support for accessing FTP server through the FtpWebRequest and FtpWebResponse classes.

This library provides easy access to the most common operations against FTP servers by providing an easy interface against this new features in the .Net 2.0 Framework.

I am sure there is a lot more to FTP than what is covered here, but if your needs are simple, this may be a starting point.

Using the library

Say that you want to upload a file to a remote FTP server.

The following example shows how to use FtpDotNet to accomplish this task.

     FtpConnection connection = new FtpConnection();
     connection.MessageReceived += new FtpConnectionEventHandler(connection_MessageReceived);
     connection.Host = "";
     connection.UserName = "username";
     connection.Password = "password";
     connection.RemoteDirectory = "/MyDirectory";
     connection.Upload(@"C:\Temp\House.jpg", "House.jpg");
 catch (WebException ex)
 catch (Exception ex)


The connection object has an event called Messagereceived where you can retrieve response messages sent from the  FTP server during operations.

<PRE class=code>void connection_MessageReceived(object sender, FtpConnectionEventArgs e)





This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Software Developer
Norway Norway
I'm a 39 year old software developer living in Norway.
I'm currently working for a software company making software for the retail industry.
Follow on   Twitter

Comments and Discussions

QuestionHow to Add % complete or Bytes send during the upload? Pinmemberwozzarvl17-Apr-15 7:40 
Question<DIR> is not handled by regular expression Pinmemberpvolchek20-Jul-11 10:13 
Generalgood! Pinmemberyuyejian4-Jun-10 0:00 
GeneralA comfortable FTP class in .NET PinmemberElmue27-Aug-08 13:40 
QuestionLicense PinmemberKITTA196424-Mar-08 1:53 
GeneralRe: License Pinmemberseesharper1-Apr-08 9:04 
QuestionProxy Pinmembertarantula325-Jan-08 13:36 
GeneralCreateWebRequest fails Pinmemberccengine8-Oct-07 2:23 
In class FtpConnection.cs:

A runtime error occurs "Unable to cast object of type 'System.Net.HttpWebRequest' to type 'System.Net.FtpWebRequest'." when trying to delete a remote file.

Inside this method, the uriBuilder has the property "Scheme" which is set to "http".
Change the scheme to "ftp" and the method CreateWebRequest will work:

        private FtpWebRequest CreateWebRequest(string method, string uri)
            UriBuilder uriBuilder = new UriBuilder(uri);
            uriBuilder.Port = mPort;
            uriBuilder.Scheme = "ftp";
            FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(uriBuilder.Uri);
            ftpWebRequest.Method = method;
            ftpWebRequest.UseBinary = mUseBinaryMode;
            ftpWebRequest.KeepAlive = false;
            ftpWebRequest.Timeout = mTimeOut;
            ftpWebRequest.Credentials = new NetworkCredential(mUserName, mPassword);
            return ftpWebRequest;

GeneralThe remote server returned an error: (530) Not logged in PinmemberCharles Meyer17-Feb-07 11:00 
GeneralRe: The remote server returned an error: (530) Not logged in PinmemberMH253817-Mar-07 1:47 
GeneralThank You! PinmemberDORMark10-Jan-07 7:45 
QuestionQuestions... [modified] Pinmemberchris17510-Nov-06 6:28 
Generalabout DirectoryList [modified] PinmemberAlper Hankendi11-Oct-06 23:44 
QuestionNice FTP code but need some help. PinmemberAdnan Jamil15-Jun-06 9:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150414.1 | Last Updated 10 May 2006
Article Copyright 2006 by seesharper
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid