找回密码
 加入
搜索
查看: 3890|回复: 9

[AU3基础] [已解决]当FTP中无文件时,_FTP_ListToArray报错的问题

  [复制链接]
发表于 2010-7-24 22:24:30 | 显示全部楼层 |阅读模式
本帖最后由 Ziya 于 2010-7-25 22:46 编辑

代码如下
#include <FTPEx.au3>

$Open = _FTP_Open('MyFTP Control');打开FTP连接
$Conn = _FTP_Connect($Open, "地址", "用户名", "密码", 1);连接到指定FTP
$aFile = _FTP_ListToArray($Conn, 2);列出文件
MsgBox(0, "", $aFile[0]);显示文件数
$Ftpc = _FTP_Close($Open);关闭FTP连接
测试FTP中如果有文件,则可以正确列出文件数量
但是当FTP中无文件时,则会报错
>运行:(3.3.6.1):J:\My Dropbox\Au3\Autoit\autoit3.exe "J:\My Dropbox\Au3\temp_au3\temp.au3"   
J:\My Dropbox\Au3\temp_au3\temp.au3 (6) : ==> ???????????.:
MsgBox(0, "", $aFile[0])
MsgBox(0, "", $aFile^ ERROR

试过 _FTP_ListToArray ,_FTP_ListToArray2D,_FTP_ListToArrayEX都是这样...不知道是哪里错了=.=
 楼主| 发表于 2010-7-25 20:47:55 | 显示全部楼层
貌似是这个udf的bug?
发表于 2010-7-25 21:56:56 | 显示全部楼层
if @error 试过了吗?
 楼主| 发表于 2010-7-25 22:10:40 | 显示全部楼层
没有用到@error吧?
貌似ftp有没有文件,@error都是0
发表于 2010-7-25 22:13:12 | 显示全部楼层
没有文件,函数也许不会返回一个数组

$aFile = _FTP_ListToArray($Conn, 2);列出文件
MsgBox(0, "", $aFile[0]);显示文件数,当返回的值$aFile不是一个数组时,就会出错

MsgBox(0, "", $aFile[0]);这句,当返回的值$aFile不是一个数组时,就会出错
可以用3#的代码检查一下@error的值,或者自已用IsArray检查$aFile是否为数组
$aFile = _FTP_ListToArray($Conn, 2);列出文件
If IsArray($aFile) then MsgBox(0, "", $aFile[0])

评分

参与人数 1威望 +2 收起 理由
afan + 2

查看全部评分

 楼主| 发表于 2010-7-25 22:41:48 | 显示全部楼层
还真是
用IsArray($aFile)判断就可以了....
感谢楼上的指点
发表于 2011-11-16 20:58:24 | 显示全部楼层
呵呵,很多困难往往是在简单的办法中得以解决的
发表于 2011-12-6 21:17:31 | 显示全部楼层
也來學習一下
发表于 2011-12-16 16:04:28 | 显示全部楼层
正好也在找一些ftp的相關資料,剛好用上
发表于 2014-2-28 11:02:57 | 显示全部楼层
谢谢,问题解决。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 03:53 , Processed in 0.085100 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表