2014-09-06 69 views
2

我需要在下載整個內容之前瞭解遠程文件的最後修改DateTime。這節省下載字節我永遠不會需要反正。如何檢查遠程文件的修改時間

當前我使用WebClient下載文件。不需要特別保留WebClient的使用。 Last-Modified密鑰可以在響應頭文件中找到,但是整個文件在該時間點被下載。

WebClient   webClient  = new WebClient(); 
byte[]    buffer   = webClient.DownloadData(uri); 
WebHeaderCollection webClientHeaders = webClient.ResponseHeaders; 
String    modified   = webClientHeaders.GetKey("Last-Modified"); 

另外,我不知道如果密鑰總是包括在互聯網上的每個文件。

回答

4

您可以使用HTTP「HEAD」方法來獲取文件的標題。

... 
var request = WebRequest.Create(uri); 
request.Method = "HEAD"; 
... 

然後您可以提取上次修改日期並檢查是否下載該文件。

請注意,並非所有服務器都會正確執行上次修改。

+0

請求是什麼?在WebClient中找不到任何'方法'。 – brainoverflow 2014-09-06 09:54:37

+0

無法在System.Net.HttpRequestHeader/HttpRepsonseHeader中找到它。 – brainoverflow 2014-09-06 09:58:05

+0

您必須將其設置爲請求對象,請參閱此處的文檔:http://msdn.microsoft.com/en-us/library/system.net.webrequest.method(v=vs.110).aspx – Krumelur 2014-09-06 10:22:47