vb.net下载文件的问题!(注:VB.NET,不是VB,不是ASP.NET,更不是其它的.NET)

时间:2021-12-25 14:02:40
研究这个问题N个月了,也找了N个例子,大多数都说用INET下载,不过此方法没有办法获取文件已下载的KB数,因此不能实现文件进度的显示,而且容易出错,速度慢.
在找到第N+1个资料贴之后,终于让我看到了用winsock也可以下载的资料,遗憾的是并没有讲到在VB.NET里应用winsock下载的实例,因此winsock控件的使用又成了问题,不管我怎么调就是搞不定,郁闷至极!最痛苦的时msdn里也没winsock下载文件的资料,我靠我靠我再靠!痛苦.现趁五一放假,打算通宵三个晚上,发誓一定要弄明白,希忘各路高手"有钱的捧个钱场,没钱的捧个人场",小弟在此先行谢过了!
强调一下:是VB.NET

40 个解决方案

#1


不知道楼主要的是FTP下载还是像迅雷一样的下载?

#2


迅雷一样下载,支持多线程分块下载!
谢谢copico(苦涩(一路向北))捧场,亲一下.哈哈

#3


捧个人场

#4


http://vbnet.mvps.org/index.html?code/internet/dofiledownload.htm
这个是调用IE下载工具下载

#5


看这个C#的例子,很容易变成VB.NET
http://www.c-sharpcorner.com/internet/simplewebfiledownload.asp

#6


我的目的不是调用其它工具下载,嘿嘿.就是为了弄明白winsock要怎么样去下载文件,这样的话我直接调用迅雷也可以呀,不过还是谢谢copico(苦涩(一路向北)) ,这也算是意外收获^-^

#7


用winsock,下载网页?
winsock要手对手链节才行啊

如果那边有你做的客户端就行,如果没有,没办法实现下载啊

#8


好的,哈哈.马上看看,如果和VB.NET的出入不大的话我应该可以转过来,应该C#我还没接触过呢,打算明年学它,再次感谢copico(苦涩(一路向北))

#9


再说再在winsock应该不叫下载了吧,叫传输

#10


用winsock,下载网页?
winsock要手对手链节才行啊

如果那边有你做的客户端就行,如果没有,没办法实现下载啊


应该可以有实现的办法的吧.我是直接从网上找一个地址进行下载的.看了好多VB的例子都是用WINSOCK这样下载网上的文件的呀.可否加我QQ:229965669细说,MSN:lyfer_rose@hotmail.com

#11


没人顶..自已再顶一贴!

#12


这样呀.还没顶.自已再顶!每日一贴

#13


网上不是有Remoting和Socket的下载文件的例子吗

都是没问题的

在.NET下我是没看到谁用Winsock

#14


Imports System.IO 
Imports System.Net 
Imports System.Text 

Class WebRetrieve 

 Public Shared Sub Main() 
   Dim wr As HttpWebRequest = CType(WebRequestFactory.Create("http://maps.weather.com/web/radar/us_orl_ultraradar_large_usen.jpg"), HttpWebRequest) 
   Dim ws As HttpWebResponse = CType(wr.GetResponse, HttpWebResponse) 
   Dim str As Stream = ws.GetResponseStream 
   Dim inBuf(100000) As Byte 
   Dim bytesToRead As Integer = CType(inBuf.Length, Integer) 
   Dim bytesRead As Integer = 0 
   While bytesToRead > 0 
     Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead) 
     If n = 0 Then 
       ' break 
     End If 
     bytesRead += n 
     bytesToRead -= n 
   End While 
   Dim fstr As FileStream = New FileStream("weather.jpg", FileMode.OpenOrCreate, FileAccess.Write) 
   fstr.Write(inBuf, 0, bytesRead) 
   str.Close 
   fstr.Close 
 End Sub 
End Class

#15


谢楼上几位,今天被公司拉出去集体"军训"了,现在才回来,所以回复得有点晚.我马上找想关资料开试.感谢:P

#16


看到一个用C#写的下载的,忘记放哪里了:(

#17


C#我看不懂呀.从没接触过.嘿嘿.那是我明年要学的.今年先VB.NET

#18


没人顶呀.那自已再顶一贴!:(

#19


用Web Services

http://dotnet.aspx.cc/ShowDetail.aspx?id=6381BD5F-51F3-4339-4239-1328564A1B2A

#20


都没人顶了.自再顶一贴.
现在出现新问题:用winsock下载文件时DownLoadFile()这个占用系统资源太大,在下载文件时其它的操作根本不能进行.窗体无法正常显示
同志们,帮忙顶顶吧,拜托了!

#21


winSock  为什么不直接用socket

#22


socket我一直搞不清楚,楼上的有没有这方面的实例,资料??我再看看,谢谢了:P

#23


MSDN

#24


试试这个方法能否满足你的要求,可以写在任何地方,就一句:

仅适用于[VB.net 2005]
My.Computer.Network.DownloadFile("http://down1.pcpop.com/Down/2006/01/PHP%20For%20Windows%20v5.1.2%20Final-PCPOP.zip", "c:\PHP.zip", "", "", True, 30000, True)

#25


马上试,谢谢rzpc(淡蓝色)

#26


爽呀爽.rzpc(淡蓝色)谢谢啦!不过还有一些地方要改,它这个下载对话框是模式窗口,有没有其它办法把这个窗口搞到自己弄的进度里去??

#27


怎么又没人顶了...自己再顶一帖@

#28


mark

#29


问一会被人K的问题?线程调用类里面的过程或函数的时候为什么不能带参数呢?
比如
dim t as new thread(addressof v.DD("A"))
这个为什么会出错呢?

#30


http://community.csdn.net/Expert/topic/4640/4640535.xml?temp=.7606165

#31


chendazhi(不务正业)谢了:P不过怎么是C的呀,看来C却实很吃香呀,明年学C了

#32


晕了,C和VB.NET根本就不一样嘛,搞了半天才看懂那个代理.......-_-|||暴汗...

#33


剛接觸.NET幫你頂一下

#34


<Top  
 lyfer(阿笨) ( ) 信誉:100  2006-4-30 20:40:31  得分: 0  
  
C#我看不懂呀.从没接触过.嘿嘿.那是我明年要学的.今年先VB.NET>

真是笨呀,学什么VB.net呀,C#最简单了,真接学C#就是了!

 
 

#35


可以呀..不过VB.NET还是有一点好处的,起码和ASP.NET有点联系呀,因为偶是搞WEB开发的,所以呢,现在先学一下VB.NET,明年学C之类的东东

#36


看来快成死贴了,下载这类问题各位真的都弄懂了,觉得没必要再在这里讨论了么?

#37


我也刚接触。
我使用的是webclient。
webcliet用downloadFile来做。。。
假如你要下载进度的话
可以用openread。返回的是stream对象
你看看吧。
最近正在头疼这个webclient呢。。。。。。。。。。。@_____@

#38


另外。假如你知道怎么用名值对提交checkbox的话能不能告诉我一声的说。

#39


ark_royal() ( ) 信誉:100  2006-05-08 01:16:00  得分: 0  
 
 
   另外。假如你知道怎么用名值对提交checkbox的话能不能告诉我一声的说。
  
 

这个我有点不明白喔,嘿嘿,我的MSN:lyfer_rose@hotmail.com

#40


OK,结帖了.
国际惯例就免了,不过在此我要感谢我的唱片公司,感谢我的经济人,感谢我的家人和我的朋友,更要感谢我的FANS们,感谢你们一直以来对我的支持,我爱你们,感谢...

#1


不知道楼主要的是FTP下载还是像迅雷一样的下载?

#2


迅雷一样下载,支持多线程分块下载!
谢谢copico(苦涩(一路向北))捧场,亲一下.哈哈

#3


捧个人场

#4


http://vbnet.mvps.org/index.html?code/internet/dofiledownload.htm
这个是调用IE下载工具下载

#5


看这个C#的例子,很容易变成VB.NET
http://www.c-sharpcorner.com/internet/simplewebfiledownload.asp

#6


我的目的不是调用其它工具下载,嘿嘿.就是为了弄明白winsock要怎么样去下载文件,这样的话我直接调用迅雷也可以呀,不过还是谢谢copico(苦涩(一路向北)) ,这也算是意外收获^-^

#7


用winsock,下载网页?
winsock要手对手链节才行啊

如果那边有你做的客户端就行,如果没有,没办法实现下载啊

#8


好的,哈哈.马上看看,如果和VB.NET的出入不大的话我应该可以转过来,应该C#我还没接触过呢,打算明年学它,再次感谢copico(苦涩(一路向北))

#9


再说再在winsock应该不叫下载了吧,叫传输

#10


用winsock,下载网页?
winsock要手对手链节才行啊

如果那边有你做的客户端就行,如果没有,没办法实现下载啊


应该可以有实现的办法的吧.我是直接从网上找一个地址进行下载的.看了好多VB的例子都是用WINSOCK这样下载网上的文件的呀.可否加我QQ:229965669细说,MSN:lyfer_rose@hotmail.com

#11


没人顶..自已再顶一贴!

#12


这样呀.还没顶.自已再顶!每日一贴

#13


网上不是有Remoting和Socket的下载文件的例子吗

都是没问题的

在.NET下我是没看到谁用Winsock

#14


Imports System.IO 
Imports System.Net 
Imports System.Text 

Class WebRetrieve 

 Public Shared Sub Main() 
   Dim wr As HttpWebRequest = CType(WebRequestFactory.Create("http://maps.weather.com/web/radar/us_orl_ultraradar_large_usen.jpg"), HttpWebRequest) 
   Dim ws As HttpWebResponse = CType(wr.GetResponse, HttpWebResponse) 
   Dim str As Stream = ws.GetResponseStream 
   Dim inBuf(100000) As Byte 
   Dim bytesToRead As Integer = CType(inBuf.Length, Integer) 
   Dim bytesRead As Integer = 0 
   While bytesToRead > 0 
     Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead) 
     If n = 0 Then 
       ' break 
     End If 
     bytesRead += n 
     bytesToRead -= n 
   End While 
   Dim fstr As FileStream = New FileStream("weather.jpg", FileMode.OpenOrCreate, FileAccess.Write) 
   fstr.Write(inBuf, 0, bytesRead) 
   str.Close 
   fstr.Close 
 End Sub 
End Class

#15


谢楼上几位,今天被公司拉出去集体"军训"了,现在才回来,所以回复得有点晚.我马上找想关资料开试.感谢:P

#16


看到一个用C#写的下载的,忘记放哪里了:(

#17


C#我看不懂呀.从没接触过.嘿嘿.那是我明年要学的.今年先VB.NET

#18


没人顶呀.那自已再顶一贴!:(

#19


用Web Services

http://dotnet.aspx.cc/ShowDetail.aspx?id=6381BD5F-51F3-4339-4239-1328564A1B2A

#20


都没人顶了.自再顶一贴.
现在出现新问题:用winsock下载文件时DownLoadFile()这个占用系统资源太大,在下载文件时其它的操作根本不能进行.窗体无法正常显示
同志们,帮忙顶顶吧,拜托了!

#21


winSock  为什么不直接用socket

#22


socket我一直搞不清楚,楼上的有没有这方面的实例,资料??我再看看,谢谢了:P

#23


MSDN

#24


试试这个方法能否满足你的要求,可以写在任何地方,就一句:

仅适用于[VB.net 2005]
My.Computer.Network.DownloadFile("http://down1.pcpop.com/Down/2006/01/PHP%20For%20Windows%20v5.1.2%20Final-PCPOP.zip", "c:\PHP.zip", "", "", True, 30000, True)

#25


马上试,谢谢rzpc(淡蓝色)

#26


爽呀爽.rzpc(淡蓝色)谢谢啦!不过还有一些地方要改,它这个下载对话框是模式窗口,有没有其它办法把这个窗口搞到自己弄的进度里去??

#27


怎么又没人顶了...自己再顶一帖@

#28


mark

#29


问一会被人K的问题?线程调用类里面的过程或函数的时候为什么不能带参数呢?
比如
dim t as new thread(addressof v.DD("A"))
这个为什么会出错呢?

#30


http://community.csdn.net/Expert/topic/4640/4640535.xml?temp=.7606165

#31


chendazhi(不务正业)谢了:P不过怎么是C的呀,看来C却实很吃香呀,明年学C了

#32


晕了,C和VB.NET根本就不一样嘛,搞了半天才看懂那个代理.......-_-|||暴汗...

#33


剛接觸.NET幫你頂一下

#34


<Top  
 lyfer(阿笨) ( ) 信誉:100  2006-4-30 20:40:31  得分: 0  
  
C#我看不懂呀.从没接触过.嘿嘿.那是我明年要学的.今年先VB.NET>

真是笨呀,学什么VB.net呀,C#最简单了,真接学C#就是了!

 
 

#35


可以呀..不过VB.NET还是有一点好处的,起码和ASP.NET有点联系呀,因为偶是搞WEB开发的,所以呢,现在先学一下VB.NET,明年学C之类的东东

#36


看来快成死贴了,下载这类问题各位真的都弄懂了,觉得没必要再在这里讨论了么?

#37


我也刚接触。
我使用的是webclient。
webcliet用downloadFile来做。。。
假如你要下载进度的话
可以用openread。返回的是stream对象
你看看吧。
最近正在头疼这个webclient呢。。。。。。。。。。。@_____@

#38


另外。假如你知道怎么用名值对提交checkbox的话能不能告诉我一声的说。

#39


ark_royal() ( ) 信誉:100  2006-05-08 01:16:00  得分: 0  
 
 
   另外。假如你知道怎么用名值对提交checkbox的话能不能告诉我一声的说。
  
 

这个我有点不明白喔,嘿嘿,我的MSN:lyfer_rose@hotmail.com

#40


OK,结帖了.
国际惯例就免了,不过在此我要感谢我的唱片公司,感谢我的经济人,感谢我的家人和我的朋友,更要感谢我的FANS们,感谢你们一直以来对我的支持,我爱你们,感谢...