我写的这个方法一周前工作正常,但现在它下载了一个不完整的文件。原始文件接近10mb,但正在下载的文件是2k。我的代码基本上就是这个
Dim URL as string = "http://www.cqc.org.uk/sites/default/files/cqc_locations_export.csv"
Dim path as string = "C:\temp"
Dim webClient As New WebClient
webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)")
webClient.DownloadFile(URL, path)
知道这里出了什么问题吗?
干杯
答案 0 :(得分:0)
这不是我的区域,但如果是二进制文件,字符编码和其他标题数据,则可能会丢失文件的大小。此外,这2k文件可能是文件或元数据的一部分。
答案 1 :(得分:0)
DownloadFile
的第二个参数需要一个完整的文件名而不仅仅是一个路径(并且C:\
驱动的根在Windows 7上受到保护,因此如果您尝试在此处写入,该方法可能会抛出异常)
注意:完成后不要忘记丢弃webclient。
注意2:我建议你应该避免使用.NET类名以外的名称来命名冲突。不要忘记VB是不敏感的(与C#不同)
以下对我来说很好:
Dim URL As String = "http://www.cqc.org.uk/sites/default/files/cqc_locations_export.csv"
Dim filename As String = "C:\temp\temp.csv"
Using wc As New WebClient
wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)")
wc.DownloadFile(URL, filename)
End Using
答案 2 :(得分:0)
托管该文件的网站或该网站如何处理GET请求可能会出现问题。下载我从DropBox共享的URI时遇到了同样的问题。该文件大约3 MB,但只下载了前112 KB。当我从Screencast.com下载相同的文件时,整个文件都被下载了。
答案 3 :(得分:0)
你可能想尝试三件事:
答案 4 :(得分:-1)
文档似乎暗示(两种不同的变体)
Dim client As New WebClient()
或
Dim client As WebClient