views:

507

answers:

5

Does .NET (C#) have built in libraries for FTP? I don't need anything crazy... very simple.

I need to:

  1. FTP into an account
  2. Detect if the connection was refused
  3. Obtain a text file
  4. Delete the text file

What's the easiest way to do this?

+7  A: 

Use the FtpWebRequest class, or the plain old WebClient class.

FTP into an account and retrieve a file:

WebClient request = new WebClient();
request.Credentials = 
    new NetworkCredential("anonymous", "[email protected]");
try 
{
    // serverUri here uses the FTP scheme ("ftp://").
    byte[] newFileData = request.DownloadData(serverUri.ToString());
    string fileString = Encoding.UTF8.GetString(newFileData);
}
catch (WebException ex)
{
    // Detect and handle login failures etc here
}

Delete the file:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Method = WebRequestMethods.Ftp.DeleteFile;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Delete status: {0}", response.StatusDescription);  
response.Close();

(Code examples are from MSDN.)

bzlm
+1  A: 

Use System.Net.FtpWebRequest/FtpWebResponse

Joel Coehoorn
+2  A: 

This article implements a GUI for an FTP client using .NET 2.0 and has full source with examples.

Sample code includes connection, download and upload as well as good comments and explanations.

Ben S
+2  A: 

Just use the FtpWebRequest class. It already handles all the things you require.

Alex Fort
A: 

Use edtFTPnet, a free, open source .NET FTP library that will do everything you need.

Bruce Blackshaw