用idftp控件 IdFTP1.List(mylist,'*',false) 获取sco unix下的文件目录出错“arguments too long".如何

G

guqs

Unregistered / Unconfirmed
GUEST, unregistred user!
用idftp控件 IdFTP1.List(mylist,'*',false) 获取sco unix下的文件目录出错“arguments too long".如何解决? (200分)<br />我用delphi7自带的idftp控件,如下获取目录:
IdFTP1.List(RichEdit1.Lines,'*',false);
当文件超过215个后,获取不到目录。
跟踪发现报错“arguments too long".

跟踪到控件idftp内的InternalGet中执行
Self.SendCmd(ACommand, [125, 150, 154]); //APR: Ericsson Switch FTP
后报此错误。
继续跟踪到TIdTCPConnection.GetInternalResponse中,执行到LLine := ReadLnWait;
LLine中内容就已经是"arguments too long",改都不知怎样改了。

我的程序在交付使用后才发现这个问题,请教各位:
这是否是idftp控件的bug?如何修改才能获取到超过215个文件的目录?(其他ftp程序都可以获取
多于215个文件的目录)
非常紧急,请高手援助!
 
在线等待!
着急,请帮助!
 
我没试过这么多的ftp目录,会有这种情况吗。研究
 
会不会这里有问题IdFTP1.List(RichEdit1.Lines,'*',false);
试试这个
s:Tstringlist;
IdFTP1.List(s);
 
to 沈浪:
换了试也没用,根本就不是这个地方的问题。richEdit可以插入500行也不会有问题。
问题出在idFtp控件代码里,我跟踪进去了。确定是它的问题。只是不知怎么改,而且难道
没有人也发现过这个问题吗?
 
不是有人说Indy是垃圾吗,看来没有瞎说
 
原来是有些冤枉idftp了,我是连接到sco unix上出现上面问题的,后来我连到unix和win2000
的ftp服务器上试都没有问题。
看来是sco unix有问题。不过我用其他ftp软件到sco unix下列目录很正常。应该说
idftp也还是有些问题的。
只是不知道改怎么改。
有没有人能告诉我?请指教!
 
我用NMHTTP和IdHttp 组件访问下列地址,都出错,
我用的是Delphi6
http://www.yahoo.com.cn
但ICS就没问题,也能返回正确的数据
 
进一步发现,原来 用 NLIST获取目录(及list参数为false) 超过215个文件就会出错,
而用LIST(即list参数为True) 获取详细目录会允许的文件多些(大约280个),但再多也会出错
arguments too long。什么原因?
 
我在使用IDFTP时总是出现connection closed gracefully(程序24小时运行,每分种检测服务器的文件情况,通过代理),所以我想可能时控件的问题,想使用动态创建控件也许会好一点。但不知道怎么创建请求帮助!
var
idftp:Tidftp

idftp.creat(??) ??填写窗体也错,填写SELF也错,不知如何处理
 
顶部