热情软件屋

 

如何检测下载是否完成


编号: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

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio