private IList<string> ComputeRemoteFiles()
{
IList<string> remoteFiles = new List<string>();
var uri = string.Format("ftp://{0}:{1}/{2}", Host, Port, RemoteDirectory);
var request = (FtpWebRequest)WebRequest.Create(new Uri(uri));
request.Credentials = new NetworkCredential(Username, Password);
var regex = RegexUtils.ConvertFilenameWildcardPatternToRegex(FileNamePattern);
// List remote files to download
request.Method = WebRequestMethods.Ftp.ListDirectory;
using (var response = (FtpWebResponse)request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream()))
{
var line = reader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
//Do pattern matching here
if (regex.IsMatch(line))
{
remoteFiles.Add(line);
}
line = reader.ReadLine();
}
}
return remoteFiles;
}