TIdFtp仅在首次运行时导致List out of bounds错误

时间:2012-01-27 22:06:27

标签: delphi ftp delphi-2010 indy10

我遇到以下代码片段的问题

启动后第一次我的程序运行此函数时,IdFtp.List命令会出现以下错误

  

EListError,消息'List index out of bounds(1)'

但是第二次运行时没有发生错误

procedure TForm1.FinnaSkrar(FileFilter: string; FtpFiles : TStringlist);
var
  i : Integer;
begin
  try    
    IdFTP1.List(FileFilter, False);
  except
    ShowMessage('No file found !');
    Exit;
  end;
  for I := 0 to IdFTP1.DirectoryListing.Count - 1 do 
    FtpFiles.Add(IdFTP1.DirectoryListing.Items[i].FileName);
end;

我尝试将Indy升级到Delphi 2010上的最新版本build 4734 ,但没有成功

错误时的一些进一步信息 调用堆栈显示

  • :7547b9bc KERNELBASE.RaiseException + 0x58
  • :0043652e TList.Get + $ 1A
  • :0043652e TList.Get + $ 1A
  • IdComponent.TIdComponent.EndWork(wmRead)
  • IdComponent.TIdComponent.EndWork(wmRead)
  • IdComponent.TIdComponent.EndWork(wmRead)
  • IdIOHandler.TIdIOHandler.ReadStream($ 229ADD0,-1,True)
  • IdFTP.TIdFTP.InternalGet('NLST REKIM- 0130 ',$ 229ADD0,False)
  • IdFTP.TIdFTP.List(nil,'REKIM- 0130 ',False)
  • IdFTP.TIdFTP.List('REKIM- 0130 ',False)
  • unitMainTntNavi.TfrmMain.FinnaSkrar( 'REKIM- 0130 ',$ 22BE730)

尚未触发OnDirParseStart和OnRetrived Dir

并且IdFTP1.DirFormat字符串为空

首先调用IdFTP1.RetrieveCurrentDir不帮助

调用IdFTP1.List(nil)具有相同的结果

0 个答案:

没有答案