[C#] Acessando Arquivos em Servidor FTP

Segue uma classe que é possível acessar um servidor ftp a partir do C#.

Código Fonte

class csGeral
{
   public void Upload(string destinationFile, String downloadUri, string userName, string password)
   {
      try
      {
         //here correct hostname or IP of the ftp server to be given
         string ftpfullpath = @"ftp://" + downloadUri.Replace("", "/");
         FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
         ftp.Credentials = new NetworkCredential(userName, password);
         //userid and password for the ftp server to given
         ftp.Timeout = 20000;
         ftp.KeepAlive = true;
         ftp.UseBinary = true;
         ftp.Method = WebRequestMethods.Ftp.UploadFile;
         FileStream fs = File.OpenRead(destinationFile);
         byte[] buffer = new byte[fs.Length];
         fs.Read(buffer, 0, buffer.Length);
         fs.Close();
         Stream ftpstream = ftp.GetRequestStream();
         ftpstream.Write(buffer, 0, buffer.Length);
         ftpstream.Close();
      }
      catch (Exception ex)
      {
         throw ex;
      }
   }

   public void DeleteFile(String downloadUri, string userName, string password)
   {
      try
      {
         //here correct hostname or IP of the ftp server to be given
         string ftpfullpath = @"ftp://" + downloadUri.Replace("", "/");
         FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
         ftp.Credentials = new NetworkCredential(userName, password);
         //userid and password for the ftp server to given
         ftp.Timeout = 20000;<br>ftp.Method = WebRequestMethods.Ftp.DeleteFile;
         FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
         response.Close();
      }
      catch (Exception ex)
      {
         throw ex;
      }
   }

   public string Download( string ftpServerIP,string filename, string ftpUserID, string ftpPassword)
   {
      try
      {
         string retorno;
         // Get the object used to communicate with the server.
         FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + filename.Replace("", "/"));
         request.Timeout = 20000;
         request.Method = WebRequestMethods.Ftp.DownloadFile;

        // This example assumes the FTP site uses anonymous logon.
        request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);
        retorno = reader.ReadToEnd();
        reader.Close();
        response.Close();
        return retorno;
      }
      catch(Exception e)
      {
         return (string.Empty);
         //throw e;
      }
   }
}

Código Fonte 2

Exemplo de uso:
String FTP_IP = "192.168.1.250";
String FTP_USER = "ftpuser";
String FTP_PASS = "ftppass";
csGeral geral = new csGeral();
geral.DeleteFile(FTP_IP + @"PASTAARQUIVO.TXT", FTP_USER, FTP_PASS);
String Config = geral.Download("", FTP_IP + @"PASTAARQUIVO.TXT", FTP_USER, FTP_PASS);
geral.Upload("ARQUIVOLOCAL.TXT", FTP_IP + @"ARQUIVOREMOTO.TXT", FTP_USER, FTP_PASS);

Não esquecer de colocar isso dentro de um método.


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Acessando Arquivos em Servidor FTP
Tags:                             

Deixe uma resposta

%d blogueiros gostam disto: