我如何在 vb.net 中从 Internet 下载文件(zip)
Posted
技术标签:
【中文标题】我如何在 vb.net 中从 Internet 下载文件(zip)【英文标题】:how do i download a file (zip) from the internet in vb.net 【发布时间】:2011-02-22 19:59:13 【问题描述】:专家。我正在尝试创建一个简单的文件下载器(带有 GUI)。我对 Vb.net 很陌生,在我拥有的书中没有找到任何有用的信息。野外的所有教程都让我更加沮丧,因为在大多数情况下,我使用的 sn-ps 是不同的类。 所以我有一些基本问题:
我应该使用什么?HttpWebRequest/HttpWebResponse
或
FileWebRequest/FileWebResponse
?
如何将ResponseStream
保存到文件中?
是否可以使用 ResponseStream 来定义文件的种类(FileInfo)类来获取基本的文件信息(大小、扩展名等)
如果GetResponse().headers
给你最
这个信息?
我的代码,太烂了,因为我不知道如何实现节省......
Private Sub btn_downloader_Click(ByVal sender...) Handles btn_downloader.Click
'e.g http://codeigniter.com/download.php'
Dim fileUrl As String = txtBox_url.Text
Dim webUri = New Uri(fileUrl)
Dim wReq As HttpWebRequest = WebRequest.Create(webUri)
Dim wRes As HttpWebResponse = wReq.GetResponse()
Dim resUri As Uri = wRes.ResponseUri
'to ckeck if http://codeigniter.com/download.php gives http://codeigniter.com/download_files/reactor/CodeIgniter_2.0.0.zip and it does!'
Dim resStream As Stream = wRes.GetResponseStream()
现在我必须以某种方式使用 Stream 方法之一来写入文件(在这个阶段仅作为 Stream),但不知道如何。 我在教程中看到了这个
resStream.Read(buffer, offset, count)
但我不知道缓冲区是什么以及它的用途。我应该设置一些静态值还是任何取决于 Stream-data 的动态值?
需要帮助!
附:对不起英语不好
【问题讨论】:
与其为“糟糕的英语”道歉,不如尽你所能地清理它? 我已经做到了。我没有人可以检查我的文本是否有拼写或语法错误。所以我发布它,因为它似乎没问题......至少对我来说。抱歉,我很确定这不是 100% 正确的,而且我犯了一些错误。 【参考方案1】:如果您希望在没有进度条或任何跟踪下载速度、估计剩余时间等的情况下快速完成,那么我建议WebClient.DownloadFileAsync or WebClient.DownloadFile
。您应该能够使用 WebClient.ResponseHeaders["content-type"]
读取 mime 类型,然后相应地重命名文件。
【讨论】:
我确实有一个进度条,当然我可以跟踪速度或至少是下载字节的数量。但是为了快速重播,我也会尝试你的建议。 那我建议你使用HttpWebRequest。您可以通过 google 找到大量示例。不要害怕看 c# 示例,因为您使用所有相同的功能。【参考方案2】:这并不完整,但可能会让您朝着正确的方向前进。 '位置是保存文件的位置..
Public Function DownloadFile(ByVal URL As String, ByVal Location As String) As Boolean
Try
Dim WC As New WebClient
WC.DownloadFile(URL, Location)
Return True
Catch ex As Exception
Return False
End Try
End Function
【讨论】:
以上是关于我如何在 vb.net 中从 Internet 下载文件(zip)的主要内容,如果未能解决你的问题,请参考以下文章
vb.net中从excel读取数据到DataGridView中的数据显示问题