Idftp控件下载功能报错"list out of bounds(0)"

xiy_funny_girl 2012-12-13 11:57:25
procedure TKAIKAIMAIN.xiazai(ftplj,bdlj:string);
var
strnowdir,FileName : string; // FileName,name,
Dir_List:TStringList;
i: Integer;
begin

i:=0;
try
strnowdir:=ftplj;
if idftp1.RetrieveCurrentDir<>'\' then
begin
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
IdFTP1.ChangeDirUp;
end;
IdFTP1.ChangeDir(strnowdir);
Dir_List:=TStringList.Create;
idftp1.List(Dir_List);
IDFTP1.TransferType:=ftBinary;
if Dir_List.Count=0 then Exit;
//判断是否是目录

if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then
begin
IdFTP1.ChangeDir(strnowdir);
end;

for i:=0 to Dir_List.Count-1 do
begin
FileName:=IdFTP1.DirectoryListing.Items[i].FileName;
showmessage(FileName);
if (IdFTP1.DirectoryListing.Items[i].ItemType = ditFile) then
//本地若存在文件,判断下载后是否覆盖本地文件 // and (IdFTP1.DirectoryListing.Items[i].ModifiedDate > StrToDate('2011-3-19'))
begin
if FileExists(bdlj+IdFTP1.DirectoryListing.Items[i].FileName) then
begin
//ShowMessage('文件己下载');
Continue;
end
else
begin
IdFTP1.Get(IdFTP1.DirectoryListing.Items[i].FileName,bdlj+IdFTP1.DirectoryListing.Items[i].FileName,False,true);
end;
end ;
end;
// showmessage(ftplj+'下载成功');
Dir_List.Free;
except
;
end;

end;
每次执行到IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory 就报出这个异常
...全文
83 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkeye 2012-12-13
  • 打赏
  • 举报
回复
这里: IdFTP1.ChangeDir(strnowdir); 还需要再调用List方法,改成下面的试试 if (IdFTP1.DirectoryListing.Items[i].ItemType = ditDirectory ) then begin IdFTP1.ChangeDir(strnowdir); idftp1.List(Dir_List); end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧