2009-10-07 84 views
0

我如何知道何时在文件末尾?C#WebClient.OpenRead如何知道eof是否?

WebClient Client = new WebClient(); 
Client.Headers.Add("User-Agent: QuickTime/7.6.2"); 
Stream stream = Client.OpenRead(link); 

Client.IsBusy并返回false .. ,我不能弄清楚如何访问Client.ResponseHeaders stream.Length给了我一个例外?所以我怎么知道如果在文件结尾处即时通讯。

回答

2

当从流中读取时返回0字节,你在最后。如果读取的呼叫阻止,您还没有结束。 .NET中的所有流访问都是如此。

从MSDN Stream.Read()

读返回0时,才会有在流中没有更多的数据并没有更多预期(例如,封闭的插座或文件的结束)。即使没有到达流的末尾,实现也可以自由返回比请求更少的字节。