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);
}
}
}
}