2015-04-23 23 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())); 
    } 
} 
相关问题