deberias primero hacer un List() normal para luego comprobar la estructura de listing de archivos
te paso un codigo a ver si sacas algo en claro, (RUTA_HOSTING es una cadena mia propia donde pongo el directorio, ajustalo como tu veas)
Código:
AnsiString RUTA_HOSTING = "RECROAK_GAME";
Código Delphi
[-]
uses
IdFTP, IdFTPList, IdComponent, SysUtils;
procedure VerificarArchivoFTP(IdFTP1: TIdFTP; const ArchivoABuscar: string);
var
i: Integer;
ExisteEnServidor: Boolean;
begin
ExisteEnServidor := False;
try
IdFTP1.Connect;
IdFTP1.ChangeDir('/'); IdFTP1.ChangeDir('RUTA_HOSTING'); IdFTP1.List;
for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
begin
if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then
begin
if AnsiCompareText(IdFTP1.DirectoryListing.Items[i].FileName, ArchivoABuscar) = 0 then
begin
ExisteEnServidor := True;
Break;
end;
end;
end;
if ExisteEnServidor then
ShowMessage('El archivo ya existe en el servidor.')
else
ShowMessage('El archivo no existe. Se puede subir.');
finally
IdFTP1.Disconnect;
end;
end;
�� Cómo usarlo:
Llamalo así desde un botón, por ejemplo:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
VerificarArchivoFTP(IdFTP1, 'miarchivo.pdf');
end;