Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- namespace FTPLib
- {
- public class FtpFileReaderWriter
- {
- private readonly string _serverLocation;
- private readonly string _filename;
- private readonly string _ftpUsername;
- private readonly string _ftpPassword;
- private string _uri;
- public FtpFileReaderWriter(string serverLocation, string filename, string ftpUsername, string ftpPassword)
- {
- _serverLocation = serverLocation;
- _filename = filename;
- _serverLocation = serverLocation;
- _ftpUsername = ftpUsername;
- _ftpPassword = ftpPassword;
- if (_serverLocation.EndsWith("/"))
- {
- _uri = _serverLocation + _filename;
- }
- else
- {
- _uri = _serverLocation + '/' + _filename;
- }
- }
- public void WriteLines(List<string> lines)
- {
- Write(lines);
- }
- public List<string> ReadLines()
- {
- return Read();
- }
- private void Write(List<string> inputs)
- {
- byte[] data = inputs.SelectMany(s => Encoding.UTF8.GetBytes(s + Environment.NewLine)).ToArray();
- var request = (FtpWebRequest)WebRequest.Create(new Uri(_uri));
- request.Method = WebRequestMethods.Ftp.AppendFile;
- request.ContentLength = data.Length;
- request.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
- var requestStream = request.GetRequestStream();
- requestStream.Write(data, 0, data.Length);
- requestStream.Close();
- var response = (FtpWebResponse)request.GetResponse();
- Console.WriteLine(response.ToString());
- response.Close();
- }
- private List<string> Read()
- {
- var request = (FtpWebRequest)WebRequest.Create(new Uri(_uri));
- request.Method = WebRequestMethods.Ftp.DownloadFile;
- request.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
- var response = (FtpWebResponse)request.GetResponse();
- Stream responseStream = response.GetResponseStream();
- StreamReader reader = new StreamReader(responseStream);
- return reader.ReadToEnd().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement