找回密码
 加入
搜索
查看: 5526|回复: 8

[AU3基础] FTPEx.au3 中的_FTP_ListToArray为什么显示不正确【已解决】

  [复制链接]
发表于 2011-11-20 18:57:34 | 显示全部楼层 |阅读模式
本帖最后由 leon460 于 2011-11-29 20:24 编辑

如题,ftp server目录中比如有个1.txt,文件,,第一次显示正确,但是我手动写入一个文件2.txt,则$aFile[$i]显示不正常,依然只有 1.txt
我把以下去掉while循环,编译出一个test.exe文件,然后再写一个循环调用test.exe,则正常,,不知道什么原因。
知道的人指点下,谢谢。
#include <FTPEx.au3>

$server = '172.21.16.46'
$username = 'wwxsawis'
$pass = 'awis123'
While 1
        $Open = _FTP_Open('SlipFinder')
        $Conn = _FTP_Connect($Open, $server, $username, $pass)
        
        $aFile = _FTP_ListToArray($Conn, 2)
        If IsArray($aFile) Then 
                For $i= 1 To $aFile[0]
                        
                        MsgBox(0,"文件名",$aFile[$i],1)
                Next
                $Ftpc = _FTP_Close($Open)
                
        EndIf        
        Sleep(10000)
WEnd
发表于 2011-11-20 20:03:00 | 显示全部楼层
从逻辑上看,下面这条语句最好放到If语句外面来(后面)。
$Ftpc = _FTP_Close($Open)
否则,如果没有文件的时候,FTP连接不会得到释放。

按照你的描述,只可能是某些东西未释放导致。脚本退出肯定会释放,所以多次调用test.exe没问题。只能这样解释。
 楼主| 发表于 2011-11-21 10:34:45 | 显示全部楼层
回复 2# xiehuahere

呵呵,尝试将_FTP_Close 移到后面,错误依旧。
现在采取主函数调用子进程的方法,排除这个错误现象。

但是我想依旧搞清楚这个问题。 遇到这样的情况的人请指点,谢谢。
发表于 2011-11-23 20:54:11 | 显示全部楼层
什么叫主函数调用子进程?能否详细说明下,因为我也碰到了这问题
发表于 2011-11-23 21:22:56 | 显示全部楼层
从代码上来分析看不出什么问题,没有ftp服务器来试代码
发表于 2011-11-24 10:10:35 | 显示全部楼层
回复 1# leon460


    回去认真研究了一下帮助,发现其实只要多加一个参数就可以解决了。
$aFile = _FTP_ListToArray($Conn, 2)
这句改为:
$aFile = _FTP_ListToArray($Conn, 2, $INTERNET_FLAG_RESYNCHRONIZE)
万事大吉!
 楼主| 发表于 2011-11-27 20:15:05 | 显示全部楼层
回复 6# xiehuahere

感谢您的回答,呵呵,周一就去测试测试下,多谢啦,多谢
发表于 2011-11-28 16:47:36 | 显示全部楼层
回复 7# leon460


    如果已解决请记得结贴。标题加上【已解决】字样。
发表于 2014-4-7 20:17:19 | 显示全部楼层
请问_FTP_ListToArray如何列出远端某文件夹下的文件?不是FTP根目录哦
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-1 09:23 , Processed in 0.078053 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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