private List <string> GetFileList(TargetTransformData sourceData) { List <string> result = new List <string>(); WebResponse response = null; StreamReader reader = null; var url = sourceData.IpAddress + sourceData.Path; FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(url)); reqFTP.UseBinary = true; reqFTP.Credentials = new NetworkCredential(); reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; reqFTP.Proxy = null; reqFTP.KeepAlive = false; reqFTP.UsePassive = false; response = reqFTP.GetResponse(); using (reader = new StreamReader(response.GetResponseStream())) { string line = reader.ReadLine(); while (line != null) { result.Add(line); line = reader.ReadLine(); } } return(result); }
public void Send(TargetTransformData targetData, IList <string> files) { foreach (var file in files) { var fileName = Path.GetFileName(file); var pathName = targetData.IpAddress; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(pathName + '/' + fileName); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(); FileInfo fi = new FileInfo(file); request.ContentLength = fi.Length; byte[] buffer = new byte[4097]; int bytes = 0; int total_bytes = (int)fi.Length; using (FileStream fs = fi.OpenRead()) using (Stream rs = request.GetRequestStream()) { while (total_bytes > 0) { bytes = fs.Read(buffer, 0, buffer.Length); rs.Write(buffer, 0, bytes); total_bytes = total_bytes - bytes; } } using (FtpWebResponse uploadResponse = (FtpWebResponse)request.GetResponse()) { var response = uploadResponse.StatusDescription; } File.Delete(file); } }
public List <string> Receive(TargetTransformData sourceData, string targetPath, string regex) { List <string> result = new List <string>(); string host = sourceData.IpAddress; string userName = sourceData.Login; string password = sourceData.Password; string sourcePath = sourceData.Path; string localPath = targetPath; WildcardPattern wildCard = new WildcardPattern(regex); using (var sftp = new SftpClient(host, userName, password)) { sftp.Connect(); var files = sftp.ListDirectory(sourcePath); foreach (var file in files) { string fileName = file.Name; if (wildCard.IsMatch(fileName)) { Stream file1 = File.OpenRead(localPath); sftp.DownloadFile(file.FullName, file1); result.Add(localPath + file.Name); } } } return(result); }
public void Send(TargetTransformData targetData, IList <string> files) { string destinyPath = targetData.Path; foreach (var file in files) { string fileName = Path.GetFileName(file); string combinedName = Path.Combine(destinyPath, fileName); File.Move(file, combinedName); } }
public List <string> Receive(TargetTransformData sourceData, string targetPath, string regex) { string sourcePath = sourceData.Path; string[] files = Directory.GetFiles(sourcePath, regex); List <string> movedFiles = new List <string>(); foreach (var file in files) { string fileName = Path.GetFileName(file); string combinedName = Path.Combine(targetPath, fileName); File.Move(file, combinedName); movedFiles.Add(combinedName); } return(movedFiles); }
public void Send(TargetTransformData targetData, IList <string> files) { string host = targetData.IpAddress; string userName = targetData.Login; string password = targetData.Password; using (var sftp = new SftpClient(host, userName, password)) { sftp.Connect(); foreach (var file in files) { using (var fileStream = new FileStream(file, FileMode.Open)) { sftp.BufferSize = 4 * 1024; // bypass Payload error large files sftp.UploadFile(fileStream, Path.GetFileName(file)); } File.Delete(file); } } }
public List <string> Receive(TargetTransformData sourceData, string targetPath, string regex) { var allFiles = GetFileList(sourceData); WildcardPattern wildCard = new WildcardPattern(regex); List <string> files = allFiles.Where(x => wildCard.IsMatch(x)).ToList(); List <string> result = new List <string>(); foreach (var file in files) { var pathName = sourceData.IpAddress + sourceData.Path + file; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(pathName); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential(); string proxyFile = targetPath + file; if (File.Exists(proxyFile)) { throw new Exception(String.Format("file <{0}> already exists", proxyFile)); } using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) using (Stream responseStream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(responseStream)) using (StreamWriter destination = new StreamWriter(proxyFile)) { destination.Write(reader.ReadToEnd()); destination.Flush(); } request = (FtpWebRequest)WebRequest.Create(pathName); request.Method = WebRequestMethods.Ftp.DeleteFile; request.Credentials = new NetworkCredential(); using ((FtpWebResponse)request.GetResponse()){} result.Add(proxyFile); } return(result); }