2015-04-23 29 views
-1

想下載URL中使用C#想只下載一個文件的最後一行在URL中使用C#

文件的只有最後一行是否有可能或者我應該總是下載整個文件的最後一行。

當我請求一個URL時,它會給出一個每5分鐘更新一次的文本。

我可以只從該網址下載最後一行嗎?

+0

你有控制資源提供者?你可以設置它只返回一個文件與過去幾分鐘的更新?或者接收並響應參數化的請求? 如果沒有,我懷疑你將不得不完整下載文件。文件大小是否顯着? – Luke

+0

這取決於你的流,如果你可以在流中尋找,然後可以跳到特定的地方,並從那裏讀取。 – Peyman

回答

1

那麼,爲了達到你所要求的,你需要知道文件中最後一行的確切字節範圍......這是事先不太可能知道的事情。

您提出請求的服務器也需要支持該功能。你可以找出是否它或不看響應報頭就包含這個頭Accept-Ranges: bytes

下面是如何進行部分內容的請求......

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com"); 
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
request.AddRange(0, 599); 

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
using (Stream stream = response.GetResponseStream())  
using (MemoryStream memoryStream = new MemoryStream()) 
{ 
    stream.CopyTo(memoryStream); 
    memoryStream.Seek(0, SeekOrigin.Begin); 

    Console.WriteLine ("Stream size in bytes: {0}", memoryStream.Length); 

    while (memoryStream.Position != memoryStream.Length) 
    { 
     Console.Write (Convert.ToChar(memoryStream.ReadByte())); 
    } 
} 
相關問題