Home / Programmazione / C# - Asp.NET / Connessione FTP con C#
Mattepuffo

Connessione FTP con C#

Connessione FTP con C#

Oggi vediamo come connetterci a un server FTP tramite C#, e listare tutti i files di una directory.

C#, e in generale .NET Framework, ha già tutto ciò che ci occorre per la connessione a FTP.

L'oggetto principale della nostra classe sarà FtpWebRequest, che esegue una richiesta al server impostando diverse opzioni.

Poi con WebResponse leggiamo la risposta del server e la processiamo con uno StreamReader.

A questo punto vediamo la classe:

   class FtpAmoda
    {
        private string strUri = "ftp://indirizzo_server/";
        private string user = "username";
        private string password = "password";

        public string[] listFiles()
        {
            string[] list;
            try
            {
                StringBuilder sb = new StringBuilder();
                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(strUri);
                request.UseBinary = true;
                request.Credentials = new NetworkCredential(user, password);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                request.Proxy = null;
                request.KeepAlive = false;
                request.UsePassive = true;
                WebResponse response = request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream());
                while (!reader.EndOfStream)
                {
                    string fileName = reader.ReadLine();
                    if (fileName.EndsWith(".txt"))
                    {
                        sb.Append(fileName.ToString()).Append("\n");
                    }
                }
                sb.Remove(sb.ToString().LastIndexOf('\n'), 1);
                reader.Close();
                response.Close();
                return sb.ToString().Split('\n');
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                list = null;
                return list;
            }
        }
}

Come vedete il metodo restituisce un array di string, che corrispondono ai files.

Diciamo che in generale non c'è molto da dire.

Tra le opzioni di FtpWebReuqest indichiamo le credenziali di accesso, l'indirizzo del server, ecc....

La mia unica "particolarità" è che nel while cerco solo i file che hanno estensione txt; voi impostatelo come volete a seconda delle vostre esigenze.

In un prossimo articolo vedremo come fare il download dei files listati.

Ciao!