代码实现功能:
从"ftp://gsonline.xicp.net"下载"!SysPatch.log",然后根据其中的内容来确认需要下载的文件列表:
!SysPatch.log文件内容:
[patch]
var=版本号
no=2
soft1.exe
soft2.exe程序:
Private Sub Form_Load()
Dim src As String
Inet1.URL = "ftp://gsonline.xicp.net"
Inet1.Protocol = icFTP
Inet1.UserName = ""
Inet1.Password = ""
FileName$ = App.Path & "\"
********************下载!SysPatch.log,注意,第一个!SysPatch.log它后面有个空格*************
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
**************以只读的方式打开!SysPatch.log*************************************
Open App.Path & "!SysPatch.log" For Input Access Read As #1
Line Input #1, src
**************如果文件中第一行不是[patch],则说明文件已经损害********************
If src = "[patch]" Then
Line Input #1, src
**************文件的第二行是一个判断标志,和label4.caption相比来确认是否是最新的版本,如果是则关闭并删除文件,载入主窗体main,至此升级完毕*****************
If Label4.Caption = Mid(src, 5) Then
Close #1
Kill "!SysPatch.log"
Unload logo
Load main
main.Show
End If
**************文件的第三行是需要下载的文件的列表**********************
Line Input #1, src
src = Mid(src, 4)
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET" & src & FileName$ & src
Next i
MsgBox "好了,文件列表我下载完毕", 16, "拿分来"
Else
MsgBox "兄弟,我找不到!SysPatch.log文件啊", 64, "你娃耍我?"
Unload logo
End If
从"ftp://gsonline.xicp.net"下载"!SysPatch.log",然后根据其中的内容来确认需要下载的文件列表:
!SysPatch.log文件内容:
[patch]
var=版本号
no=2
soft1.exe
soft2.exe程序:
Private Sub Form_Load()
Dim src As String
Inet1.URL = "ftp://gsonline.xicp.net"
Inet1.Protocol = icFTP
Inet1.UserName = ""
Inet1.Password = ""
FileName$ = App.Path & "\"
********************下载!SysPatch.log,注意,第一个!SysPatch.log它后面有个空格*************
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
**************以只读的方式打开!SysPatch.log*************************************
Open App.Path & "!SysPatch.log" For Input Access Read As #1
Line Input #1, src
**************如果文件中第一行不是[patch],则说明文件已经损害********************
If src = "[patch]" Then
Line Input #1, src
**************文件的第二行是一个判断标志,和label4.caption相比来确认是否是最新的版本,如果是则关闭并删除文件,载入主窗体main,至此升级完毕*****************
If Label4.Caption = Mid(src, 5) Then
Close #1
Kill "!SysPatch.log"
Unload logo
Load main
main.Show
End If
**************文件的第三行是需要下载的文件的列表**********************
Line Input #1, src
src = Mid(src, 4)
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET" & src & FileName$ & src
Next i
MsgBox "好了,文件列表我下载完毕", 16, "拿分来"
Else
MsgBox "兄弟,我找不到!SysPatch.log文件啊", 64, "你娃耍我?"
Unload logo
End If
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET" & src & FileName$ & src
Next i
大家怎么看?
Open App.Path & "!SysPatch.log" For Input Access Read As #1
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET" & src & FileName$ & src
Do While Inet1.StillExecuting'加上这个来判断是否下载完成
DoEvents
Loop
Next i
Dim src As String
Inet1.URL = "ftp://gsonline.xicp.net"
Inet1.Protocol = icFTP
Inet1.UserName = ""
Inet1.Password = ""
FileName$ = App.Path & "\"
********************下载!SysPatch.log,注意,第一个!SysPatch.log它后面有个空格*************
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
**************以只读的方式打开!SysPatch.log*************************************
Open App.Path & "\!SysPatch.log" For Input Access Read As #1
Line Input #1, src
**************如果文件中第一行不是[patch],则说明文件已经损害********************
If src = "[patch]" Then
Line Input #1, src
**************文件的第二行是一个判断标志,和label4.caption相比来确认是否是最新的版本,如果是则关闭并删除文件,载入主窗体main,至此升级完毕*****************
If Label4.Caption = Mid(src, 5) Then
Close #1
Kill "!SysPatch.log"
Unload logo
Load main
main.Show
End If
**************文件的第三行是需要下载的文件的列表**********************
Line Input #1, src
src = Mid(src, 4)
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET " & src & FileName$ & src
Next i
MsgBox "好了,文件列表我下载完毕", 16, "拿分来"
Else
MsgBox "兄弟,我找不到!SysPatch.log文件啊", 64, "你娃耍我?"
Unload logo
End If--------------------------------------以上测试通过
Do While Inet1.StillExecuting'加上这个来判断是否下载完成
DoEvents
Loop依然提示:文件未找到(调试的时候),然后下面这句变为黄色
Open App.Path & "!SysPatch.log" For Input Access Read As #1我将它生成EXE后,运行提示文件未找到----敬请注意,没有提示什么“仍在执行上一操作”
运行完
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
这一段,看下对应路径下是否有"!SysPatch.log文件
不过看你的代码也应该没有问题才对...
Sleep 1000'延迟
Open App.Path & "\!SysPatch.log" For Input Access Read As #1
我调试时,提示找不到文件,你的怎么能运行?
上面忘了下载了,改成这个Private Sub Form_Load()
Dim src As String
Inet1.URL = "ftp://gsonline.xicp.net"
Inet1.Protocol = icFTP
Inet1.UserName = ""
Inet1.Password = ""
FileName$ = App.Path & "\"
********************下载!SysPatch.log,注意,第一个!SysPatch.log它后面有个空格*************
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
**************以只读的方式打开!SysPatch.log*************************************
Open App.Path & "\!SysPatch.log" For Input Access Read As #1
Line Input #1, src
**************如果文件中第一行不是[patch],则说明文件已经损害********************
If src = "[patch]" Then
Line Input #1, src
**************文件的第二行是一个判断标志,和label4.caption相比来确认是否是最新的版本,如果是则关闭并删除文件,载入主窗体main,至此升级完毕*****************
If Label4.Caption = Mid(src, 5) Then
Close #1
Kill "!SysPatch.log"
Unload logo
Load main
main.Show
End If
**************文件的第三行是需要下载的文件的列表**********************
Line Input #1, src
src = Mid(src, 4)
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET " & src & " " & FileName$ & src
Do While Inet1.StillExecuting
DoEvents
Loop
Next i
MsgBox "好了,文件列表我下载完毕", 16, "拿分来"
Else
MsgBox "兄弟,我找不到!SysPatch.log文件啊", 64, "你娃耍我?"
Unload logo
End If
!SysPatch.log
mir.dat
mirserver.rar
没病毒吧?!
^_^
非常感谢你的API函数,不过问题依然不能解决,还是那个问题----找不到文件,我甚至也在
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop
前面加了句Sleep 1000。
Open App.Path & "!SysPatch.log" For Input Access Read As #1
这里用Open FileName$ & "!SysPatch.log" For Input Access Read As #1
不过ftp服务器好像连不上。
同上,我非常惊讶----您的的确确是将文件下载下来了
可是我怎么不行???
!SysPatch.log可以下载下来
其他2个文件就不得而知----文件未找到,我怎么都想不通的是,竟然还将错误停留在:
Open App.Path & "!SysPatch.log" For Input Access Read As #1
你没仔细看啊
你那句我已经给你改了
蒙诸位垂青!
问题已经解决,下面是经诸位改正后的可以准确运行的代码:
Private Sub Form_Load()
Dim src As String
'Dim intofmy As Integer
Inet1.URL = "ftp://gsonline.xicp.net"
Inet1.Protocol = icFTP
Inet1.UserName = ""
Inet1.Password = ""
FileName$ = App.Path & "\"
Inet1.Execute , "GET !SysPatch.log " & FileName$ & "!SysPatch.log"
Do While Inet1.StillExecuting
DoEvents
Loop Open FileName$ & "!SysPatch.log" For Input Access Read As #1
Line Input #1, src
If src = "[patch]" Then
Line Input #1, src
If Label4.Caption = Mid(src, 5) Then
Close #1
Kill "!SysPatch.log"
Unload logo
Load main
main.Show
End If
Line Input #1, src
src = Mid(src, 4)
For i = 1 To Val(src) Step 1
Line Input #1, src
Inet1.Execute , "GET" & src & FileName$ & src
Do While Inet1.StillExecuting
DoEvents
Loop
Next i
MsgBox "文件下载完毕", 16, "谢谢诸位"
Else
MsgBox "找不到要下载的文件", 64, "你小子出错了"
Unload logo
End If
End Sub 散分