我有两个文件的链接。它们可能是同一个文件,但可能不是同一个 URL。我想通过在进行完整下载之前检查内容长度来确定它们是否相同。最好的方法是什么?
目前我正在使用 webbrowser 控件加载页面并提取数据,然后WebClient.Download
用于获取文件。有没有办法在下载整个文件之前使用 WebClient 检查文件大小?
我发现了一篇很棒的文章Get file length over HTTP before you download it,它提供了一种非常适合我的方法:
static public long GetFileSize(string url)
{
using (WebClient obj = new WebClient())
using (Stream s = obj.OpenRead(url))
return long.Parse(obj.ResponseHeaders["Content-Length"].ToString());
}
长度相等并不意味着文件相同。但是,如果您确定这足以断言相等,您可以发出一个HttpWebRequest
with Method
set to HEAD
:这只会下载文件头,包括content-length
.