您的位置:程序门 -> vb -> 网络编程



用vb的inet控件 怎么得到ftp站点下的文件列表?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


用vb的inet控件 怎么得到ftp站点下的文件列表?[已结贴,结贴人:zhanglan2005]
发表于:2007-01-12 12:53:39 楼主
我想用inet控件取出ftp站点下的文件列表,放到一个数组中,然后挨个下载.最好是能得到ftp站点下的每个文件的修改时间,因为我是想做自动升级程序,想根据时间判断是否新版本.   请帮我,最好有代码,因我没用过inet控件.
发表于:2007-01-12 15:24:491楼 得分:5
我上次也搞过这问题,我是用字符串去处理的!不知道有没有什么另外的高招!
发表于:2007-01-15 15:23:132楼 得分:30
dim   files()   as   string
private   function   autoupdate()   as   string
on   error   resume   next
inet1.protocol   =   icftp
inet1.remotehost   =   "hostname "
inet1.remoteport   =   21
inet1.username   =   "test "
inet1.password   =   "test "
inet1.EXECute   " ",   dir
while   inet1.stillEXECuting
doevents
i   =   i   +   1
lblshow.caption   =   str(i)
wend
'while   v_completed   =   false
autoupdate   =   trim(inet1.getchunk(1024,   icstring))

end   function
files=split(autoupdate,vbcrlf)
这样就可以把所有的文件名放到files数组里了,   files(0)和files(1)无效,从files(2)开始
发表于:2007-01-17 15:50:073楼 得分:0
请问楼上,为何我执行您的代码后   autoupdate= " "呢?  
option   explicit
dim   files()   as   string

private   function   autoupdate()   as   string
    on   error   resume   next
    dim   i   as   integer
    inet1.protocol   =   icftp
    'inet1.url   =   "ftp://175.18.145.237 "
    inet1.remotehost   =   "175.18.145.237 "         '两种方式都不行
    inet1.remoteport   =   21
    inet1.username   =   "administrator "
    inet1.password   =   "123456 "
    inet1.EXECute   " ",   dir
    while   inet1.stillEXECuting    
    '执行到上一行时再执行就到了autoupdate   =   trim(inet1.getchunk(1024,   icstring))  
        doevents
        i   =   i   +   1
        lblshow.caption   =   str(i)
    wend
    'while   v_completed   =   false
    autoupdate   =   trim(inet1.getchunk(1024,   icstring))  
    '执行结果为autoupdate= " ",
    '但明明用ie输入ftp://175.18.145.237后再输入用户名/密码会出来文件列表
end   function

private   sub   command3_click()
        files   =   split(autoupdate,   vbcrlf)
end   sub

发表于:2007-01-22 10:08:564楼 得分:5
inet1.EXECute   " ",   dir     改成
inet1.EXECute   ,   ( "dir ")
发表于:2007-01-22 11:24:525楼 得分:10
文件的修改时间,因为我是想做自动升级程序,想根据时间判断是否新版本
=================================================================

systemtime m_stlastmodify;
dwsize   =   sizeof(m_stlastmodify);
if   (false   ==   ::httpqueryinfo(m_hfile,
http_query_last_modified   ¦   http_query_flag_systemtime,
&m_stlastmodify,
&dwsize,
null))
{
::memset(&m_stlastmodify,   0,   sizeof(m_stlastmodify));
}


快速检索

最新资讯
热门点击