(VB)FTP异步下载
该方法不需要使用API及第三方控件
这里使用的是VB的UserControl控件的AsyncRead方法
步骤如下:
1、添加一个用户控件,设置InvisibleAtRuntime属性为true,目的是运行时该控件不显示用户界面,就象Timer控件一样。
2、到自定义控件的代码窗口,添加如下代码
Option Explicit
'下载结果枚举
Public Enum DownloadResults
eSUCCESS = 0 '下载成功
eCONNECTERROR = 1 '连接错误
eTRANSFERERROR = 2 '数据传输错误
eWRITEERROR = 3 '保存本地错误
eUserStop = 4 '中止
End Enum
'下载进度事件 Identifier-下载标识,RecvdBytes-已下载字节数,MaxBytes-总字节数,PassTimer-已用下载时间(秒)
Public Event DownloadProgress(Identifier As String, RecvdBytes As Long, MaxBytes As Long, PassTimer As Long)
'下载完成事件 Identifier-下载标识,ccDownloadResults-下载结果,PassTimer-已用下载时间(秒)
Public Event DownloadComplete(Identifier As String, Result As DownloadResults, PassTimer As Long)
Dim FstrURL As String 'FTP 下载字符串,含IP,端口号,用户名,密码,下载的文件及其路径
Dim FstrSaveFile As String '下载的文件保存在本地的文件名及其路径
Dim FstrIdentifier As String '下载标识
Dim FlngStart As Long '开始下载时间
'下载文件
'strURL FTP 下载字符串,含IP,端口号,用户名,密码,下载的文件及其路径
' 形如 ftp://用户名:密码@FTP地址/目录/文件
'strSaveFile 保存时的本地文件名
'strIdentifier 下载标识,可以同时下载多个文件,依据此字符串区别所下载的文件
Public Sub DownLoad(ByVal strURL As String, ByVal strSaveFile As String, ByVal strIdentifier As String)
On Error GoTo ERRHAND
FstrURL = strURL
FstrSaveFile = strSaveFile
FstrIdentifier = strIdentifier
FlngStart = Timer
UserControl.AsyncRead strURL, vbAsyncTypeByteArray, strIdentifier, vbAsyncReadForceUpdate
Exit Sub
ERRHAND:
RaiseEvent DownloadComplete(strIdentifier, eCONNECTERROR, Timer - FlngStart)
End Sub
Private Sub UserControl_AsyncReadComplete(AsyncProp As AsyncProperty)
On Error GoTo Errs
相关文档:
ASP.Net中使用VB.Net调用存储过程并得到返回值
来源:qqread论坛 作者: 出处:巧巧读书 2006-08-03 进入讨论组
//存储过程代码
CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))AS
Insert Into SMB_In ......
'引用:Microfoft VBScript Regular Expressions 5.5 '一个正则提取功能
Public Function regGetStr_three(ByVal myString As String, ByVal patReg As String) As String()
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As Ma ......
——————————————————————————————————
在c#中如何使用以前c++的.lib库和.h头文件
zhujiang_1977(朱江 ......
3,Return without GoSub
5,Invalid procedure call
6,Overflow
7,Out of memory
9,Subscript out of range
10,This array is fixed or temporarily locked
11,Division by zero
13,Type mismatch
14,Out of string space
16,Expression too complex
17,Cant perform requested operation
18,User int ......