Question

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?

Was it helpful?

Solution

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", "janeDoe@contoso.com");
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.)

OTHER TIPS

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.

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

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top