//Para poder fazer o upload do arquivo é necessário passar o caminho todo do arquivo Ex: @"c:\path\testeenvio.txt" //Dentro do método tem um objeto "FileInfo", onde trata o documento para facilitar a manipulação do mesmo public void uploadFTP() { try { if (FTPfileExists() == true) { throw new Exception(); } else { var uri = new Uri(URL + ArquivoUpload.Name); using (var webClient = new WebClient()) { webClient.Credentials = new NetworkCredential(Username, Password); webClient.UploadFile(uri, ArquivoUpload.FullName); } OnDowndload = OnUploadComplete; OnDowndload.Invoke(); } } catch (Exception ex) { if (FTPfileExists() == true) { OnDowndload = OnUploadExists; OnDowndload.Invoke(); } else { OnDowndload = OnUploadErro; OnDowndload.Invoke(); } } }
//A sting Local armazena o nome do arquivo que você quer baixar na pasta raiz, vulgo a URL //os arquivos são baixados passando o nome e o tipo como parâmetro exp: "teste.txt" public void BaixarArquivoFTP() { try { OnDowndload = OnInit; OnDowndload.Invoke(); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(URL + ArquivoDownload); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential(Username, Password); var response = (FtpWebResponse)request.GetResponse(); var responseStream = response.GetResponseStream(); if (FileDirectoryExists() == true) { throw new Exception(); } else { using (var memoryStream = new MemoryStream()) { responseStream.CopyTo(memoryStream); var conteudoArquivo = memoryStream.ToArray(); File.WriteAllBytes(ArquivoDownload, conteudoArquivo); } response.Close(); //MoverFilePara(); OnDowndload = OnComplete; OnDowndload.Invoke(); } } catch (Exception ex) { if (FileDirectoryExists() == true) { OnDowndload = OnFileExists; OnDowndload += OnError; OnDowndload.Invoke(); } else { OnDowndload = OnError; OnDowndload.Invoke(); } } }
public string ArquivoDownload; // Facilita a manipulação do arquivo e evita de ficar passando parâmetros a todo método criado #region Listar diretorio do FTP //Lista os arquivos dentro do diretório. public void ListarDiretorioFTP() { try { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(URL); request.Method = WebRequestMethods.Ftp.ListDirectory; request.Credentials = new NetworkCredential(Username, Password); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream); string names = reader.ReadToEnd(); Console.WriteLine(names); reader.Close(); response.Close(); } catch (Exception) { OnDowndload = OnError; OnDowndload.Invoke(); } }