leon460 发表于 2011-11-20 18:57:34

FTPEx.au3 中的_FTP_ListToArray为什么显示不正确【已解决】

本帖最后由 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
                       
                        MsgBox(0,"文件名",$aFile[$i],1)
                Next
                $Ftpc = _FTP_Close($Open)
               
        EndIf       
        Sleep(10000)
WEnd

xiehuahere 发表于 2011-11-20 20:03:00

从逻辑上看,下面这条语句最好放到If语句外面来(后面)。$Ftpc = _FTP_Close($Open)否则,如果没有文件的时候,FTP连接不会得到释放。

按照你的描述,只可能是某些东西未释放导致。脚本退出肯定会释放,所以多次调用test.exe没问题。只能这样解释。

leon460 发表于 2011-11-21 10:34:45

回复 2# xiehuahere

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

但是我想依旧搞清楚这个问题。 遇到这样的情况的人请指点,谢谢。

z761003 发表于 2011-11-23 20:54:11

什么叫主函数调用子进程?能否详细说明下,因为我也碰到了这问题

xms77 发表于 2011-11-23 21:22:56

从代码上来分析看不出什么问题,没有ftp服务器来试代码

xiehuahere 发表于 2011-11-24 10:10:35

回复 1# leon460


    回去认真研究了一下帮助,发现其实只要多加一个参数就可以解决了。$aFile = _FTP_ListToArray($Conn, 2)这句改为:$aFile = _FTP_ListToArray($Conn, 2, $INTERNET_FLAG_RESYNCHRONIZE)万事大吉!

leon460 发表于 2011-11-27 20:15:05

回复 6# xiehuahere

感谢您的回答,呵呵,周一就去测试测试下,多谢啦,多谢

xiehuahere 发表于 2011-11-28 16:47:36

回复 7# leon460


    如果已解决请记得结贴。标题加上【已解决】字样。

txm888 发表于 2014-4-7 20:17:19

请问_FTP_ListToArray如何列出远端某文件夹下的文件?不是FTP根目录哦
页: [1]
查看完整版本: FTPEx.au3 中的_FTP_ListToArray为什么显示不正确【已解决】