有关idftp的读取列表的问题
我在用idftp做个FTP客户端读取列表时遇到两个问题,
1(主要的):在读取IIS或SEV-U做的FTP列表时没有问题,但去读取同事用网上下的FTP服务器绿色下载站建立的FTP的列表时,在运行到LIST命令后,报错("*":Directory not found),简单代码如下:
IdFTP1->Host=Edit1->Text;
IdFTP1->Username=Edit2->Text;
IdFTP1->Password=Edit3->Text;
IdFTP1->Port=Edit4->Text.ToInt();
TStringList *filelist=new TStringList();
IdFTP1->Connect(true,IdTimeoutDefault);
IdFTP1->List(filelist,'*',True);
我用FLASHFTP去连接这种服务器,可以正确读取列表,但看FLASHFTP的连接过程,连接IIS或SEV-U时只通过[R] LIST -al
[R] 150 Opening ASCII mode data connection for /bin/ls.
[R] 226 Transfer complete.
就可以了,而绿色FTP的站点则是
[R] LIST -al
[R] 550 "-al": Directory not found.
[R] LIST
[R] 150 Opening ASCII mode data connection for directory list.
[R] 226 Transfer complete
显然也遇到了这个错误,但不知道它是如何解决的?
2(次要的):在成功读取列表后,除了上述的filelist中包含文件信息,IdFTP1->DirectoryListing结构中也包含这些信息,如文件名信息存放在IdFTP1->DirectoryListing->Items[i]->FileName中,但我在读取IIS的FTP时,无法正确读取文件大小为0的文件名,其它文件或文件夹可以正确读取,SEV-U的0大小的文件也可正确读取;当然我可以从filelist中抽出正确的文件名,但想问下,这是为什么?