原理很简单,不要什么SQL。
既然要用FTP,那么需要一个控件,MSINET.ocx也就是Microsoft
Internet
Transfer
Control
6.0
这森迅个控件的属性protocol设为ICFTP,
首先连此唤此接
FTP服务器
:
Inet1.URL
=
"你的FTP地址"
Inet1.UserName
=
"FTP用户名"
Inet1.Password
=
"FTP密码"
下载
配置文件
(检测是否需要更新)
Inet1.Execute
,
"GET
Config.ini
"链氏
&
App.Path
&
"\Config.ini"
'下载配置文件(Config.ini)到本地,然后读取这个文件里面的内容和本地的是否是一样的,或者哪些不一样,需要下载哪些,
然后就下载需要更新的文件
Inet1.Execute
,
"GET
你要下载的文件.exe
"
&
App.Path
&
"\下载到的目录和文件名"
这样就可以实现一个简单的更新了。。。
Private Sub Form_Load()Inet1.URL = "
Inet1.UserName = "123456"
Inet1.Password = "11111"
Inet1.Execute , "Get tutorial.ini " & App.Path & "\tutorial.ini"
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Static n As Integer
If State = 12 Then
n = n + 1
If n = 1 Then
Inet1.Execute , "Get XXXX.exe " & App.Path & "\"
Else
Inet1.Execute , "quit"
End If
End If
End Sub
Inet控件的Execute方法是异步运行的,也就是说它运行后会不等命令是否执行完毕就紧接着执行下一个命令,所以两个Execute方法是不能紧挨着运行的。正确的做法是要通过轮询(通过循环不断检测Inet控件是否空闲)或事件驱动(StateChanged事件)的方式,在前一条命令结束运行后再执行下一条命令。推荐事件驱动,这是最节省资源也是最标准的处理方式。我上面提供的代码告运就是事件驱动的方式。
补充一句:上述代码稍作修改,就可下载两个以上的文件,比如:
If n = 1 Then
Inet1.Execute , "Get XXXX1.exe " 斗陪& App.Path & "\"袜销梁
ElseIf n = 2 Then
Inet1.Execute , "Get XXXX2.exe " & App.Path & "\"
ElseIf n = 3 Then
Inet1.Execute , "Get XXXX3.exe " & App.Path & "\"
Else
Inet1.Execute , "quit"
End If
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)