//public void DownloadOrders() //{ // _downloadedOrders = DownloadFiles(GetFtpOrders(), DirDownloadOrders); //} //public void DownloadPayments() //{ // _downloadedPayments = DownloadFiles(GetFtpPayments(), DirDownloadPayments); //} public void ListFtpFiles(FTPdirectory files) { foreach (var file in files) { Console.WriteLine(file.FullName + " " + file.Permission + " " + file.Filename); } }
private IEnumerable <string> getFileNamesRecursively(string folder) { FTPdirectory folders = null; try { folders = client.ListDirectoryDetail(folder); } catch (WebException ex) { //550 errors are likely. //TODO: Log error. return(new List <string>()); } List <string> files = new List <string>(); foreach (var file in folders.GetFiles()) { files.Add(file.FullName); } foreach (var dir in folders.GetDirectories()) { files = files.Concat(getFileNamesRecursively(dir.FullName)).ToList(); } return(files); }
public FTPdirectory GetFtpFiles(Uri Host, string ext = "") { FTPclient ftp = new FTPclient(Host.AbsoluteUri, FtpUser, FtpPassword); ftp.UsePassive = true; FTPdirectory ftpDir = ftp.ListDirectoryDetail(); return(ftpDir.GetFiles("")); }
public List<FileInfo> DownloadFiles(FTPdirectory files, string dowloadDir) { List<FileInfo> downloadedFiles = new List<FileInfo>(); foreach (var file in files) { if (file.FileType == FTPfileInfo.DirectoryEntryTypes.File) { string filePath = Path.Combine(dowloadDir, file.Filename); FileInfo targFile = new FileInfo(filePath); //FTPclient ftp = new FTPclient(Host.AbsoluteUri, FtpUser, FtpPassword); // ftp.Download(file, targFile, true); FileInfo newFile = new FileInfo(filePath); downloadedFiles.Add(newFile); } } return downloadedFiles; }
public List <FileInfo> DownloadFiles(FTPdirectory files, string dowloadDir) { List <FileInfo> downloadedFiles = new List <FileInfo>(); foreach (var file in files) { if (file.FileType == FTPfileInfo.DirectoryEntryTypes.File) { string filePath = Path.Combine(dowloadDir, file.Filename); FileInfo targFile = new FileInfo(filePath); //FTPclient ftp = new FTPclient(Host.AbsoluteUri, FtpUser, FtpPassword); // ftp.Download(file, targFile, true); FileInfo newFile = new FileInfo(filePath); downloadedFiles.Add(newFile); } } return(downloadedFiles); }
private void AddFileData(string path) { const int MaxTries = 3; FTPdirectory ftpDir = new FTPdirectory(); // If the path is //. or //.. don't store it if (path.EndsWith(".")) { return; } // Looks like we're getting some random timeout failures. Putting in this loop // so we'll retry a couple times before giving up. for (int numTries = 0; numTries < MaxTries; numTries++) { try { // Get all the files and directories in this directory ftpDir = ftpClient.ListDirectoryDetail(path); // If we didn't get an exception, get out of this loop break; } catch (WebException exc) { // If we've tried a lot already, give up if (numTries >= MaxTries - 1) { throw exc; } else { // Wait a little while and try again. Thread.Sleep(1000); } } } // Store each of the files in this directory ftpDir.GetFiles("").ForEach(new Action<FTPfileInfo>(StoreFiles)); // Recursively call this function on ftpDir.GetDirectories().ForEach(new Action<FTPfileInfo>(AddFileData)); }
/// <summary> /// Return a detailed directory listing, and also download datetime stamps if specified /// </summary> /// <param name="directory">Directory to list, e.g. /pub/etc</param> /// <param name="doDateTimeStamp">Boolean: set to True to download the datetime stamp for files</param> /// <returns>An FTPDirectory object</returns> public FTPdirectory ListDirectoryDetail(string directory, bool doDateTimeStamp) { String URI = GetDirectory(directory); System.Net.FtpWebRequest ftp = GetRequest(URI); // Set request to do simple list ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails; string str = GetStringResponse(ftp); // replace CRLF to CR, remove last instance str = str.Replace("\r\n", "\r").TrimEnd('\r'); // split the string into a list FTPdirectory dir = new FTPdirectory(str, _lastDirectory); // download timestamps if requested if (doDateTimeStamp) { foreach (FTPfileInfo fi in dir) { fi.FileDateTime = this.GetDateTimestamp(fi); } } return dir; }