开发者

.NET FtpWebRequest not returning DateTimeStamp or FileSize

I'm using FtpWebRequest to connect to an FTP server and I can use WebRequestMethods.F开发者_如何学运维tp.ListDirectoryDetails to list the directory details fine. However the response from the remote server has day, month and time but not year:

-rw-rw-rw- 1 user group 949 Jun 2 08:43 Unsubscribes_20100602.zip

-rw-rw-rw- 1 user group 1773 Jun 1 06:48 export_142571709.txt

-rw-rw-rw- 1 user group 1773 Jun 1 06:50 export_142571722.txt

-rw-rw-rw- 1 user group 980 Jun 1 06:51 export_142571734.txt

This is required for the application I'm writing so I tried to use WebRequestMethods.Ftp.GetDateTimestamp to get the datetimestamp for each file but the response is always empty. No exception is thrown.

try
{
    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(path);

    ftp.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
    ftp.Method = WebRequestMethods.Ftp.GetDateTimestamp;

    try
    {
        Stream stream = ftp.GetResponse().GetResponseStream();
        StreamReader sReader = new StreamReader(stream);

        return sReader;
    }
    catch (Exception exp)
    {
        throw new Exception(String.Format("An error occured getting the timestamp for {0}: {1}<br />", path, exp.Message));
    }
}

Has anyone got any ideas why this would be?


The GetDateTimestamp method does not return its data in the normal stream. Just like the file size method returns its data in the ContentLength header/property, the GetDateTimestamp method has its data in the LastModified header/property.

    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(path);

    ftp.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
    ftp.Method = WebRequestMethods.Ftp.GetDateTimestamp;

    try
    {
       using(FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())
       {
           return response.LastModified;
       }
    }
    catch
    {
        throw new Exception(String.Format("An error occured getting the timestamp for {0}: {1}<br />", path, exp.Message));
    }

BTW You can check this answer as well.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜