public DateTime GetDirectoryLastWriteTime(string address) { Ftp currentFtp = SetRequest(address); List <FileHelper> fileList = new List <FileHelper>(); currentFtp.ChangeDirectory(uri.LocalPath); currentFtp.ChangeDirectory(".."); DateTime lastWriteTime = DateTime.MinValue; currentFtp.Timeout = 3000; try { //Todo: Can't search with pattern for directory, so gets all item and then compare them with names. FtpList items = currentFtp.GetList(); foreach (FtpItem item in items) { if (item.IsDirectory && item.Name == uri.LocalPath.Trim(new char[] { '\\', '/' })) { lastWriteTime = item.Modified; } } } catch (Exception ex) { Log(ex); } finally { currentFtp.Timeout = FTP_TIMEOUT; } return(lastWriteTime); }
public FileHelper[] GetFiles(string address, string pattern, int timeout) { Ftp currentFtp = SetRequest(address); currentFtp.Timeout = timeout; List <FileHelper> fileList = new List <FileHelper>(); try { currentFtp.ChangeDirectory(uri.LocalPath); FtpList items = new FtpList(); Thread t = new Thread(delegate() { try { items = currentFtp.GetList(pattern); } catch { } }); t.Start(); t.Join(timeout); foreach (FtpItem item in items) { if (item.IsFile) { FileHelper fileInfo = new FileHelper(uri + item.Name); fileInfo.CreationTime = item.Modified; fileList.Add(fileInfo); } } } catch (Exception ex) { Log(ex); } finally { currentFtp.Timeout = FTP_TIMEOUT; } return(fileList.ToArray()); }