在使用idftp组件的时候,目录列表的显示,是个比较大的问题,在indy9的demo中,使用的是headercontrol+listbox,然后处理listbox的drawitem事件,看起来,也不简单。
由于indy10的demo少得可怜,特说明如下:其中,indy10,listview使用的是raize component 5的控件,跟标准控件可能有部分差异。
方法:
首先,在连接上服务器后,调用idftp的list函数,获取文件列表
其中,list的函数,
procedure List( ADest: TIdStrings, const ASpecifier: string = ”, ADetails: Boolean = True ); overload;
可以根据简单的表达式过滤,如下,就只显示出zip文件,AFiles存储了文件列表
AFiles := TIdStringList.Create;
AFtp.List(AFiles, ‘*.zip’, True);
if AFtp.DirectoryListing.Count <> 0 then
begin
FillDirListView(AFtp.DirectoryListing)
end;
其实,idftp的ListResult属性也保存了相应的列表,完全可以忽略list函数中的该参数