Yo lo tengo configurado de esta forma:
Código Delphi
[-] IdFTP.Passive := True;
IdFTP.TransferType := TIdFTPTransferType.ftBinary;
Y con el código que ves más abajo (muy similar al tuyo) me funciona perfectamente.
Código Delphi
[-]var
items:TIdFTPListItems;
...
begin
...
try
IdFTP.List;
items := IdFTP.DirectoryListing;
for i := 0 to (items.Count - 1) do begin
item := idftp.directorylisting.Items[i];
if (item.ItemType = ditFile) and AnsiContainsText(AnsiString(Item.FileName), AnsiString(MiFichero)) then begin
...