多个FTP请求-C#

多个FTP请求-C#,c#,ftp,ftpwebrequest,C#,Ftp,Ftpwebrequest,我正在尝试获取特定目录中的文件列表,然后我想检查它们上次修改的日期 初始请求可以正常工作: FtpWebRequest request; request = (FtpWebRequest)WebRequest.Create(new Uri(FtpPath)); request.Credentials = new NetworkCredential("username", "password"); request.Method = WebRequestMethods.Ftp.ListDirec

我正在尝试获取特定目录中的文件列表,然后我想检查它们上次修改的日期

初始请求可以正常工作:

FtpWebRequest request;

request = (FtpWebRequest)WebRequest.Create(new Uri(FtpPath));
request.Credentials = new NetworkCredential("username", "password");

request.Method = WebRequestMethods.Ftp.ListDirectory;

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

string FileNames = reader.ReadToEnd();
然后经过一些处理,我选择我感兴趣的文件并尝试检索它们的时间戳。以下情况在循环中发生:

request = (FtpWebRequest)WebRequest.Create(new Uri(FtpPath + Files[i]));
request.Credentials = new NetworkCredential("username", "password");

request.Method = WebRequestMethods.Ftp.GetDateTimestamp;

response = (FtpWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream);

FileDates = reader.ReadToEnd();

My
FileDates
变量永远不会设置为任何内容。我很想将其打包到一个类中,以避免可怕的代码重复,但目前我只能满足于能够检索我感兴趣的数据。

以下是我的大致解决方案:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(FtpPath));
reuest.Credentials = new NetworkCredential("user", "password");
request.Method = WebRequestMethods.Ftp.ListDirectory;

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

string FileNames = reader.ReadToEnd();
string[] Files = Regex.Split(FileNames,"\r\n");
现在我得到了所有文件名的数组

Dictionary<string, DateTime> Dates = new Dictionary<string, DateTime>();

for (int i = 0; i <= Files.Length - 1; i++)
{
    request = (FtpWebRequest)WebRequest.Create(new Uri(FtpPath + Files[i]));
    request.Credentials = new NetworkCredential("user", "password");
    request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
    response = (FtpWebResponse)request.GetResponse();

    DateTime FileDate = response.LastModified;
    Dates.Add(Files[i], FileDate);
}
字典日期=新字典();

因为(inti=0;我在FtpPath的末尾有/吗?@Scott Chamberlain是的,有。