在vb中下载之前获取文件大小

Tec*_*guy 2 vb.net download webbrowser-control

我一直在使用visual basic的web浏览器.现在,我想要做的是在下载之前获取文件大小,当我点击下载时我想获得alrady下载的Mbs的数量(观看图片) )

..

感谢帮助!

Vis*_*ent 7

我做了一些研究,这可能是获得下载大小(以字节为单位)的最简单,最"最干净"的方式:

Public Function GetDownloadSize(ByVal URL As String) As Long
    Dim r As Net.WebRequest = Net.WebRequest.Create(URL)
    r.Method = Net.WebRequestMethods.Http.Head
    Using rsp = r.GetResponse()
        Return rsp.ContentLength
    End Using
End Function
Run Code Online (Sandbox Code Playgroud)

感谢里德金布尔,谁告诉我,处置WebResponse我最初的MSDN的问题.


上面的代码将读取文件的响应头,而不是读取它的主体.这意味着该文件不需要下载,只是为了检查它的大小.

这就是为什么有些代码要求文件首先实际下载的原因; 他们正在阅读文件的正文而不是它的标题.


希望这可以帮助!


Min*_*aut 5

使用WebClient ResponseHeaders:

Public Shared Function GetFileSize(url As String) As Long
    Using obj As New WebClient()
        Using s As Stream = obj.OpenRead(url)
            Return Long.Parse(obj.ResponseHeaders("Content-Length").ToString())
        End Using
    End Using
End Function
Run Code Online (Sandbox Code Playgroud)

在下载之前请求文件大小