private static List <string> GetAllFileNames(FTPInfo ftpInfo, string originDirectory) { List <string> fileNames = new List <string>(); FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://{ftpInfo.Server}:{ftpInfo.Port}/{originDirectory}"); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; request.Credentials = new NetworkCredential(ftpInfo.User, ftpInfo.Password); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream); string fileName = reader.ReadLine(); while (!string.IsNullOrEmpty(fileName)) { var array = fileName.Split(" "); fileNames.Add(array[array.Length - 1]); fileName = reader.ReadLine(); } reader.Close(); response.Close(); return(fileNames); }
public static void DownloadAllFilesInDirectory(FTPInfo ftpInfo, string directory, string destinationDirectory) { var fileNames = GetAllFileNames(ftpInfo, directory); foreach (var fileName in fileNames) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://{ftpInfo.Server}:{ftpInfo.Port}/{directory}/{fileName}"); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential(ftpInfo.User, ftpInfo.Password); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream); using (FileStream fs = File.Create($"{destinationDirectory}{fileName}")) { byte[] info = new UTF8Encoding(true).GetBytes(reader.ReadToEnd()); fs.Write(info); } reader.Close(); response.Close(); } }
public static void UploadFile(FTPInfo ftpInfo, string filePath, string destinationDirectory) { using (var client = new SftpClient(ftpInfo.Server, ftpInfo.User, ftpInfo.Password)) { client.Connect(); using (var fileStream = new FileStream(filePath, FileMode.Open)) { client.UploadFile(fileStream, $"{destinationDirectory}/{Path.GetFileName(filePath)}"); } } }
static void Main(string[] args) { FTPInfo ftpInfo = new FTPInfo { Server = "localhost", Port = "12345", User = "******", Password = "******" }; FTPManager.UploadFile(ftpInfo, "testFile.txt", "claims"); FTPManager.DownloadAllFilesInDirectory(ftpInfo, "era", @"\LocalFolder\era\"); SFTPManager.UploadFile(ftpInfo, "testFile.txt", "claims"); SFTPManager.DownloadAllFilesInDirectory(ftpInfo, "era", @"\LocalFolder\era\"); Console.ReadKey(); }
public static void UploadFile(FTPInfo ftpInfo, string filePath, string destinationPath) { byte[] fileContents; using (StreamReader sourceStream = new StreamReader(filePath)) { fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); } FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://{ftpInfo.Server}:{ftpInfo.Port}/{destinationPath}/{Path.GetFileName(filePath)}"); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(ftpInfo.User, ftpInfo.Password); request.ContentLength = fileContents.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(fileContents, 0, fileContents.Length); } }
public static void DownloadAllFilesInDirectory(FTPInfo ftpInfo, string directory, string destinationDirectory) { using (var client = new SftpClient(ftpInfo.Server, ftpInfo.User, ftpInfo.Password)) { client.Connect(); var filesInfo = client.ListDirectory(directory); foreach (var fileInfo in filesInfo) { if (!fileInfo.IsDirectory) { using (FileStream fs = File.Create($"{destinationDirectory}{fileInfo.Name}")) { client.DownloadFile(fileInfo.FullName, fs); } } } } }