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

DownloadRemoteFiles() private method

Download list of remote files from remote directory
 
private DownloadRemoteFiles ( IList remoteFiles ) : void
remoteFiles IList
return void
        private void DownloadRemoteFiles(IList<string> remoteFiles)
        {
            if (remoteFiles.Any())
            {
                foreach (var fileName in remoteFiles)
                {
                    // Start stopwatch
                    var stopwatch = new Stopwatch();
                    stopwatch.Start();

                    // Try download
                    var uri = string.Format("ftp://{0}:{1}/{2}/{3}", Host, Port, RemoteDirectory, fileName);
                    var request = (FtpWebRequest)WebRequest.Create(new Uri(uri));
                    request.Method = WebRequestMethods.Ftp.DownloadFile;
                    request.Credentials = new NetworkCredential(Username, Password);
                    request.UseBinary = true;
                    request.UsePassive = false;

                    using (var response = (FtpWebResponse)request.GetResponse())
                    using (var inputStream = response.GetResponseStream())
                    using (var outputStream = File.OpenWrite(LocalDirectory + "/" + fileName))
                    {
                        inputStream.CopyTo(outputStream);
                    }

                    stopwatch.Stop();
                    if (Logger.IsDebugEnabled)
                    {
                        Logger.Debug("File transfert of {0} done in {1} ms", fileName, stopwatch.ElapsedMilliseconds);
                    }
                }
            }
        }