在互连网广泛应用的今天,将有用的信息下载到本地是一件很普遍的事。当然,这个过程我们可以通过许多下载工具实现。目前的这些下载工具,绝大多数都是使用http协议完成的。虽然使用http编写下载工具是一种很简单的方法,但美中不足的是开发人员必须要结合winsock并编写大量的代码才可以完成。因为http是一个工业标准,你不可以自定义这个标准,唯一的办法只有服从。而且由于用到winsock技术,所以对开发人员的要求也很高。
以前我曾经用vb6编写了一个下载程序,在程序中使用了vb6中提供的winsock activeX控件和http协议来实现最简单的下载功能。这个程序的长度有200行。
今天当我翻开.net框架时,我兴奋了,应为要编写一个下载软件比以前方便、快捷了,于是我忍不住希望有人和我分享这种愉悦的心情。我真的是为.net叫好,他能使你从乏味的工作中解脱出来!
下面就让我们一下这种技术为什么如此让人兴奋。
在.net中编写快速简单的下载和上传的代码只要调用WebClient类就可以了。对于简单请求和响应事务,WebClient类提供将数据上载到Internet服务器或从Internet服务器下载数据的最简便的方法。WebClient提供上载和下载文件、发送和接收流以及将数据缓冲区发送到服务器并接收响应的方法。这样,事情就简单多了。
了解了这个技术后,我们就可以编写下载和上传的程序了。
先添加timer,textbox,button,savefiledialog和4个label控件,savefiledialog用来保存下载的文件,timen用来和一个label控件结合,显示已经下载了多少。Textbox用来接受输入的url地址。将timer1的属性interval定为1000,即每一秒启动一次Timer1_Tick事件。将label1.text定为http:\\。
代码如下:
Imports System.Net'到入命名空间
Public Class Form1
Inherits System.Windows.Forms.Form
Public Shared fpath As String
Dim fsize As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim urld As String
Dim i As Integer
Dim dfile As New WebClient()'实例化WebClient类
SaveFileDialog1.ShowDialog()
fpath = SaveFileDialog1.FileName
Label3.Text = "文件保存在" & fpath
urld = Label1.Text + TextBox1.Text
Timer1.Enabled = True
dfile.DownloadFile(urld, fpath)'下载指定nrl地址的文件
Timer1.Enabled = False
End Sub
Private Sub Timer1_Tick(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Refresh()'用来刷新窗口
Dim th2 As New th1()
Dim tt As New System.Threading.Thread(AddressOf th2.timeth) 实例化线程类
tt.Start()'启动线程
Label2.Text = th2.downk'显示下载文件的大小
'进行计算下载速度
Static k As Integer
Dim p,downspeed
p = k
k = p + 1
p = k
Dim fileinfo As New System.IO.FileInfo(form.fpath)
downspeed = fileinfo.Length()
downspeed= downspeed/p
label4.textbox= "当前下载速度是"& downspeed & "k/m"
End Sub
End Class
Public Class th1
Public Shared downk As String
Dim form As New Form1()
Dim fileinfo As New System.IO.FileInfo(form.fpath)
Dim fsize As Long
Public Sub timeth()
If fileinfo.Exists = True Then
fsize = fileinfo.Length()
downk = "以下载文件" & fsize & "k"
End If
End Sub
End Class保留:: http://www.qqread.com/vbdotnet/d282973.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 常用软件加密宝典 (7726篇文章)
- 杀毒软件专栏 (7032篇文章)
- .NET移动与嵌入式技术 (5880篇文章)
- .NET开发手册 (5585篇文章)
- 软件插件 (7362篇文章)
- Wlan组网----家庭专题 (4108篇文章)
- .NET实用开发 (1653篇文章)
- VB.NET 入门教程 (22167次浏览)
- VB.NET读写文本文件方法 (579次浏览)
- vb.net入门——MDI 窗体的基础使用 (342次浏览)
- 浅析Visual Basic.NET中的资源使用 (322次浏览)
- vb.net入门——Windows 窗体中的提示对话框 (296次浏览)
- vb.net入门——PictureBox控件的使用 (268次浏览)
- vb.net入门——ToolBar 控件的使用 (267次浏览)
- vb.net入门——DateTimePicker 控件的使用 (260次浏览)
- vb.net入门——Splitter 控件的使用 (254次浏览)
- vb.net入门——Windows窗体中的菜单操作 (243次浏览)



