Summer.Batch.Extra.FtpSupport.FtpGetTasklet.ComputeRemoteFiles C# (CSharp) Method

ComputeRemoteFiles() private method

Search for remote files matching the FileNamePattern
 
private ComputeRemoteFiles ( ) : IList
return IList
        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;
        }