如何检测下载是否完成
编号:QA000867
建立日期: 1999年4月25日 最后修改日期:1999年4月25日
所属类别:
李酷:
使用操作系统:中文WIN95
使用编程工具:中文VB5.0
我遇到的问题如下:
近来我使用VB自带的INET控件来进行FTP编程,在用这个控件进行连续下载多个文件时出现“仍进行上一次请求”的错误。我的具体做法是先把要下载的多个文件名(包括路径)存放在一个数组中,然后循环调用GET命令来进行下载。
程序清单如下:
m为文件个数,a()为存放文件名的数组,FileName为存放文件的变量
For i = 1 To m
FileName = a(i)
Inet1.Execute , "get " & FileName & " C:\" & FileName
Next
我曾经试用延时来解决这一问题,但因为每个文件的大小不一,故很难控制延时的时间。(延时长了影响程序下载的速度,延时短了问题又解决不了。)请各位编程高手多多帮忙。THANKS
回答:
Internet Transfer控件有一个StillExecuting属性是用来检测是否下载完毕的。如果下载未完成,该属性返回一个非零值,而下载完成,返回0。VB5的帮助说,下载未完成将返回True(-1),其实这是不对的(参见微软的Knowledge Base的文章:“Q182152 IX: StillExecuting Property Returns Incorrect Value”)。VB 6修复了这个Bug。你可以把下面的代码加在 Inet1.Execute后面。
Do While Inet1.StillExecuting
DoEvents
Loop
此问题由李海回答。
| |
|
|
| |
|
|