Я ищу небольшой пример кода, который использует пространство имен System.Net.FtpWebRequest для получения метки времени указанного удаленного файла на ftp-сервере. Я знаю, что мне нужно установить для свойства Method моего объекта запроса значение WebRequestMethods.Ftp.GetDateTimestamp, но я не знаю, как вернуть ответ в объект System.DateTime.
Пример System.Net.FtpWebRequest GetDateTimestamp
Ответы (3)
Да - примерно так я и закончил. Я пошел с чем-то вроде этого
request = FtpWebRequest.Create("ftp://ftp.whatever.com/somefile.txt");
request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
request.Proxy = null;
using (FtpWebResponse resp = (FtpWebResponse)request.GetResponse())
{
Console.WriteLine(resp.LastModified);
}
person
Dav Evans
schedule
26.06.2009
Одна проблема с этим подходом - он автоматически преобразует время в текущий часовой пояс клиента, а не в часовой пояс сервера. Я обнаружил, что мне нужно использовать WebRequestMethods.Ftp.ListDirectoryDetails и анализировать время из строки, в которой находится файл, чтобы получить измененную дату часового пояса сервера.
- person NightOwl888; 30.11.2012
Чтобы получить только поле даты, но не время, сделайте то же самое, что и первый ответ в этой теме, за следующим исключением:
Console.WriteLine(response.LastModified().ToShortDateString);
person
Carlos Morales
schedule
10.01.2012
Что-то вроде этого:
DateTime DateValue;
FtpWebRequest Request = (FtpWebRequest)WebRequest.Create(yourUri);
Request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
Request.UseBinary = false;
using (FtpWebResponse Response = (FtpWebResponse)Request.GetResponse())
using (TextReader Reader = new StringReader(Response.StatusDescription))
{
string DateString = Reader.ReadLine().Substring(4);
DateValue = DateTime.ParseExact(DateString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture.DateTimeFormat);
}
person
arbiter
schedule
26.06.2009