【发布时间】:2013-03-29 09:05:06
【问题描述】:
我的问题和这个问题一样:
但我的问题是Content-Length 属性包含响应返回的Content-Length 标头的值,而不是确切的文件大小。
我尝试使用FileInfo,但它只能将本地文件名作为参数 - 而不是远程文件。
谁能告诉我如何获取以字节或千字节为单位的远程文件大小?
【问题讨论】:
-
正如@mdb 在他对您链接的问题的回答中所说,如果内容长度不存在或不正确,则准确知道文件大小的唯一方法是下载它。您是否通过 fiddler 或任何其他 http 调试工具检查了 HTTP 响应,以查看 Content-Length 标头是否与您在代码中获得的值相同?
-
是的,当我匹配该值时。我正在下载的文件大小为 5.49 MB,内容长度显示为数字 1448。
-
你能发布一个代码示例,也许还有 HTTP 请求和响应?您可以使用您喜欢的浏览器的调试工具(按 F12 键并查找“网络”选项卡)或 Fiddler (fiddler2.com/fiddler2)。
-
HttpWebRequest wrq = (HttpWebRequest)WebRequest.Create(Prg.source_path); HttpWebResponse wrs = null; try { // HttpWebRespose 的对象创建 wrs = (HttpWebResponse)wrq.GetResponse(); // 调用下载文件运行它没有身份验证 long l = wrs.ContentLength; } catch (System.Net.WebException protocolError) {} 这里 l 包含内容长度,但我希望总文件大小为 5.49 MB 或以 KB 为单位。