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
从逻辑上看,下面这条语句最好放到If语句外面来(后面)。$Ftpc = _FTP_Close($Open)否则,如果没有文件的时候,FTP连接不会得到释放。
按照你的描述,只可能是某些东西未释放导致。脚本退出肯定会释放,所以多次调用test.exe没问题。只能这样解释。 回复 2# xiehuahere
呵呵,尝试将_FTP_Close 移到后面,错误依旧。
现在采取主函数调用子进程的方法,排除这个错误现象。
但是我想依旧搞清楚这个问题。 遇到这样的情况的人请指点,谢谢。 什么叫主函数调用子进程?能否详细说明下,因为我也碰到了这问题 从代码上来分析看不出什么问题,没有ftp服务器来试代码 回复 1# leon460
回去认真研究了一下帮助,发现其实只要多加一个参数就可以解决了。$aFile = _FTP_ListToArray($Conn, 2)这句改为:$aFile = _FTP_ListToArray($Conn, 2, $INTERNET_FLAG_RESYNCHRONIZE)万事大吉! 回复 6# xiehuahere
感谢您的回答,呵呵,周一就去测试测试下,多谢啦,多谢 回复 7# leon460
如果已解决请记得结贴。标题加上【已解决】字样。 请问_FTP_ListToArray如何列出远端某文件夹下的文件?不是FTP根目录哦
页:
[1]