Domanda

Sto cercando un po 'di codice di esempio che utilizza lo spazio dei nomi System.Net.FtpWebRequest per ottenere il timestamp di un file remoto specificato su un server ftp. So che devo impostare la proprietà Method dell'oggetto richiesta su WebRequestMethods.Ftp.GetDateTimestamp ma non sono sicuro di come ottenere la risposta in un oggetto System.DateTime.

È stato utile?

Soluzione

Sì, è praticamente quello con cui sono finito. Sono andato con qualcosa del genere

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

Altri suggerimenti

Per ottenere solo il campo data ma non l'ora, fai esattamente come la prima risposta in questa discussione con la seguente eccezione:

Console.WriteLine(response.LastModified().ToShortDateString);

Qualcosa del genere:

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top