Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2020
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Borrar todos los archivos de carpeta FTP

Buenas noches:

necesito borrar todos los archivos de una carpeta FTP


Estoy trabajando con Delphi 7 e Indy 10

Uso el componente TidFTP para conectarme, crear carpetas, copiar archivos, borrar archivos y borrar carpetas. (Aclaro que no me deja borrar la carpeta sino está vacía.)

Y no encuentro la forma de leer todos los archivos y borrarlos.

probé con:

FTP.Delete('*.*');

Pero me dice "file not found"

Encontré en internet un método:

Código Delphi [-]
procedure TF_ftpServidores.btBorrarTodosClick(Sender: TObject);
var
  i:Integer;
  flist: TStringList;
  numDeleted: Integer;

begin
   FTP.List(flist,'*.*',true); //cargar en lista, los archivos segun la mascara '*.*', todos los archivos
   for i:=0 to FTP.DirectoryListing.count-1 do begin//recorrer el directorio
      try
        FTP.Delete(FTP.DirectoryListing[i].FileName); //borro cada elemento de la lista
      except
          memerrores.Lines.Add('Error al tratar de eliminar:  ' + FTP.DirectoryListing[i].FileName+ ' en carpeta destino' );
      end;
   end;

 //  ftp.Delete('*.*');

end;

Pero acá...
FTP.List(flist,'*.*',true); //cargar en lista, los archivos segun la mascara '*.*', todos los archivos

me dice ...
"cannot assign tstringlist to a tf_ftpServidores"

Bueno... dejo hecha la consulta.

Desde ya gracias por participar de foro.

Saludos
Responder Con Cita
  #2  
Antiguo 08-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Más o menos así:
Código Delphi [-]
mftp.ChangeDir( cDirName );
mftp.List;
for iX:=0 to mftp.DirectoryListing.Count-1 do
begin
  cFile := mftp.DirectoryListing[iX].FileName;
  if cFile<>'' then
    mftp.Delete( cFile );
end;
Responder Con Cita
  #3  
Antiguo 10-02-2020
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Unhappy Gracias Casimiro, pero....

Gracias Casimiro:

Pero hay algo raro, porque

mftp.DirectoryListing.Count-1

siempre me devuelve cero.
Responder Con Cita
  #4  
Antiguo 10-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si devuelve cero es que estás leyendo un directorio donde no hay nada.
Responder Con Cita
  #5  
Antiguo 10-02-2020
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
El código completo es:

Código Delphi [-]
var
  i: integer;
begin
    FTP.ChangeDir( edCarpeta.text );
    memlista.lines.add(ftp.RetrieveCurrentDir);
    FTP.List;
    for i := 0 to FTP.DirectoryListing.Count-1 do
    begin
       memlista.lines.add(FTP.DirectoryListing[i].FileName);
    end;

cuando hago:

memlista.lines.add(ftp.RetrieveCurrentDir);

Muestra el directorio correcto.

Pero por alguna razón FTP.DirectoryListing.Count-1 es cero.

Sin embargo en esa carpeta hay un montón de archivos..
Responder Con Cita
  #6  
Antiguo 10-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero qué valor tiene edCarpeta.Text, qué devuelve RetrieveCurrentDir y qué directorio estás leyendo realmente del servidor FTP, ten en cuenta que normalmente puedes definir un directorio "virtual" asociado a un directorio "real", por ejemplo el directorio real: c:\fotos y el "virtual" del servidor ftp es "\". Sin embargo, si tú lees "fotos", estarás leyendo realmente "\", y no encontrarás tus fotos.
Responder Con Cita
  #7  
Antiguo 10-02-2020
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Chanfle !!

Gracias colega.
Entonces ..
Cómo selecciono el directorio ftp real ?

porque hago

Código Delphi [-]
FTP.ChangeDir( 'prueba2');
y luego copio un archivo
Código Delphi [-]
FTP.Put( Archivo, ExtractFileName( Archivo ), False );

y lo copia en prueba2.
Responder Con Cita
  #8  
Antiguo 11-02-2020
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Resolvido !!!!!

Bueno, listo.

No pude hacer funcionar el metodo de Casimiro, pero hice esto.

Código Delphi [-]
    FTP.List(edFiltro.Text, false);
    memDir.Text := FTP.ListResult.Text;

El parámetro false/true te trae o no el detalle de los archivos.

Saludos Foro y Gracias Casimiro, no te ví, del Barrio Bella Vista, calle Juan B. Justo, Dpto. 9° B.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Borrar archivos segun fecha y la carpeta si esta vacia lbidi Varios 2 06-11-2012 13:11:21
como borrar una carpeta con todos los archivos que contiene. danyfebrero Varios 2 25-08-2012 20:18:22
Como borrar los archivos de la carpeta Windows\Temp\ JoAnCa Varios 4 02-02-2011 16:44:55
Borrar archivos dentro de carpeta ØnLy Varios 1 23-11-2010 06:36:55
Como eliminar una carpeta y todos sus archivos? Ayudaa Supra Varios 5 15-07-2008 14:12:43


La franja horaria es GMT +2. Ahora son las 00:14:19.


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
Copyright 1996-2007 Club Delphi