Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Borrado remoto archivos via ftp, indy. (https://www.clubdelphi.com/foros/showthread.php?t=70542)

TaaDow 26-10-2010 22:16:26

Borrado remoto archivos via ftp, indy.
 
Buen Dia,
Existe una carpeta en un servidor, a la cual debo insertar unos archivos via ftp, pero antes de realizar la subida, debo borrar los archivos existentes en la carpeta remota. Estoy utilizando el objeto TidFTP de la pestaña indyclients.

El proceso de subida lo hago bien, pero donde me he quedado frenado es con el borrado, hasta ahora tengo dos posibles soluciones:

1)hacer un TidFTP.changedir(MiCarpetaRemota), recorrer y borrar los archivos adentro de esta con TidFTP.delete(archivo_n) problema no tengo la menor idea de como recorrer los archivos remotamente.
2) Eliminar la carpeta por completo, crear una nueva con el mismo nombre, problema el comando TidFTP.removedir(MiCarpetaRemota), no permite borrar la carpeta si esta tiene archivos.

Alguna sugerencia?,
de antemano gracias por sus respuestas,
TaaDow

Neftali [Germán.Estévez] 27-10-2010 13:28:34

Extraído de la ayuda:

TIdFTP.List ()

Retrieves a list of files and directories on the FTP server.

TIdFTP.List (TIdStrings, string, Boolean)
Retrieves a list of files and directories on the FTP server.

TIdFTP.List (string, Boolean)
Retrieves a list of files and directories on the FTP server.


Deberías revisar ese método.

Luego aplicar el delete.

TaaDow 27-10-2010 18:47:03

Gracias por la respuesta, efectivamente el con el metodo List lo pude solucionar:
Código Delphi [-]
var
  i:Integer;
  flist: TStringList;
begin
   FTP.Username := '*****';
   FTP.Password := '*****';
   FTP.Host := '*******';
   try
      FTP.Connect;
   except
     memo.Lines.Add('No se ha podido conectar con el servidor ' + FTP.Host );
   end;
   FTP.ChangeDir('\');  // me situo en la raiz, o donde quiera
   FTP.List(flist,'*.*',true); //cargar en lista, los archivos segun la mascara '*.*', todos los archivos  
   for i:=0 to FTP.DirectoryListing.count-1 do //recorrer el directorio
      begin
        try
            FTP.Delete(FTP.DirectoryListing[i].FileName); //borro cada elemento de la lista
        except
            memo.Lines.Add('Error al tratar de eliminar:  ' + FTP.DirectoryListing[i].FileName+ ' en carpeta destino' );
        end;
      end;
   FTP.Disconnect;
   FTP.Free;
end;

ElJac 14-01-2011 21:14:53

Buenas,
soy nuevo en el foro, he visitado esta pagina miles de veces y me han ayudado muchisimo, pero ahora tengo un inconveniente, quisiera saber como listar en un Memo los archivos que existen en un FTP, he visto los codigos que aca han publicado pero no me funciona, me sale un Access Violation y el programa se detiene.
Lei que se hacia con el TIdFTP.List pero ahi es donde sale el Access Violation. Muchas gracias por su ayuda.

German 14-01-2011 22:12:33

¿La carpeta y/o el usuario que utilizas para conectar tendran los permisos suficientes para obtener una lista de archivos...?


La franja horaria es GMT +2. Ahora son las 07:17:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi