Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace FTPLib
  10. {
  11. public class FtpFileReaderWriter
  12. {
  13. private readonly string _serverLocation;
  14. private readonly string _filename;
  15. private readonly string _ftpUsername;
  16. private readonly string _ftpPassword;
  17. private string _uri;
  18.  
  19. public FtpFileReaderWriter(string serverLocation, string filename, string ftpUsername, string ftpPassword)
  20. {
  21. _serverLocation = serverLocation;
  22. _filename = filename;
  23. _serverLocation = serverLocation;
  24. _ftpUsername = ftpUsername;
  25. _ftpPassword = ftpPassword;
  26. if (_serverLocation.EndsWith("/"))
  27. {
  28. _uri = _serverLocation + _filename;
  29. }
  30. else
  31. {
  32. _uri = _serverLocation + '/' + _filename;
  33. }
  34. }
  35.  
  36. public void WriteLines(List<string> lines)
  37. {
  38. Write(lines);
  39. }
  40. public List<string> ReadLines()
  41. {
  42. return Read();
  43. }
  44.  
  45. private void Write(List<string> inputs)
  46. {
  47. byte[] data = inputs.SelectMany(s => Encoding.UTF8.GetBytes(s + Environment.NewLine)).ToArray();
  48. var request = (FtpWebRequest)WebRequest.Create(new Uri(_uri));
  49. request.Method = WebRequestMethods.Ftp.AppendFile;
  50. request.ContentLength = data.Length;
  51. request.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
  52. var requestStream = request.GetRequestStream();
  53. requestStream.Write(data, 0, data.Length);
  54. requestStream.Close();
  55. var response = (FtpWebResponse)request.GetResponse();
  56. Console.WriteLine(response.ToString());
  57. response.Close();
  58. }
  59. private List<string> Read()
  60. {
  61. var request = (FtpWebRequest)WebRequest.Create(new Uri(_uri));
  62. request.Method = WebRequestMethods.Ftp.DownloadFile;
  63. request.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
  64. var response = (FtpWebResponse)request.GetResponse();
  65. Stream responseStream = response.GetResponseStream();
  66. StreamReader reader = new StreamReader(responseStream);
  67. return reader.ReadToEnd().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
  68. }
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement