I work on C# web application and need to download files using FTP to local folder. Those images need to have modification date greater than date I specify.
Code:
public static List<FTPLineResult> GetFilesListSortedByDate(string ftpPath, Regex nameRegex, DateTime cutoff, System.Security.Cryptography.X509Certificates.X509Certificate cert)
{
List<FTPLineResult> output = new List<FTPLineResult>();
if (cert != null)
{
FtpWebRequest request = FtpWebRequest.Create(ftpPath) as FtpWebRequest;
request.Credentials = new NetworkCredential("unm", "pwd");
request.ClientCertificates.Add(cert);
ConfigureProxy(request);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
StreamReader directoryReader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.ASCII);
var parser = new FTPLineParser();
while (!directoryReader.EndOfStream)
{
var result = parser.Parse(directoryReader.ReadLine());
if (!result.IsDirectory && result.DateTime > cutoff && nameRegex.IsMatch(result.Name))
{
output.Add(result);
}
}
// need to ensure the files are sorted in ascending date order
output.Sort(
new Comparison<FTPLineResult>(
delegate(FTPLineResult res1, FTPLineResult res2)
{
return res1.DateTime.CompareTo(res2.DateTime);
}
)
);
}
return output;
}
I have to use certificate (.p12).
How can I do this?