Ich würde es wahrscheinlich quick-and-dirty so lösen:
Code:
for j:= 0 to 1 do
try
if IdFTP.Connected then
begin
IdFTP.List();
for I := 0 to IdFTP.DirectoryListing.Count - 1 do
begin
[...]
end
[...]
break;
end;
except
on e: EIdFTPServiceNotAvailable do
if i=0 then
begin
IdFTP.Disconnect;
IdFTP.Connect;
end;
end;
...ungetestet, als Anregung...