Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 23-02-2023
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola a todos!!

al hacer el list, para obtener el listado de ficheros, dependiendo del parámetro true/false que le pongas, obtienes solo el nombre de los ficheros/directorios u obtienes un listado mas completo de pares de valores, separados por comas con las características del fichero (tamaño, permisos, propietario, etc).
Si tienes certeza que en la ruta no contiene subdirectorios usando el parámetro false seria suficiente, pero si ya tienes subdirectorios entonces tienes que usar si o si el LIST con el parámetro a true.

Aquí te dejo este código de ejemplo que te puede ayudar

Código Delphi [-]
  function ExtractFTPFiles(FTPList: TStrings): TArray<string>;
  var
    fileInfo: string;
    ParseInfo: TStringList;
  begin
    try
      result := [];
      ParseInfo := TStringList.Create;
      ParseInfo.Delimiter := ';';
      //recorre todos los ficheros de la lista
      for fileInfo in FTPList do begin
        ParseInfo.DelimitedText := fileInfo;
        if ParseInfo.Values['type'] = 'file' then
          result := result + [ParseInfo.Strings[ParseInfo.Count - 1]];
      end;
    finally
      ParseInfo.free;
    end;
  end;

var
  StringList: TStringList;
  files: TArray<string>;
  rutaActual, rutaFTP: string;
  fileName: string;
begin
  rutaFTP := 'midirectorio';

  StringList := TStringList.Create;
  try
    FTP.Connect;
    // Obtiene la ruta actual
    rutaActual := FTP.RetrieveCurrentDir;
    // con el parametro false, obtiene una lista simple de los nombre de ficheros y directorios
    // con este tipo de lista no se puede saber lo que es un fichero o un directorio
    FTP.List(StringList, '', false);
    if (rutaActual <> rutaFTP) then
      if (StringList.IndexOf(rutaFTP) < 0) then
        raise Exception.Create('la ruta buscada no existe')
      else
        ftp.changeDir(rutaFTP);

    /// con el parametro true, La informacion sobre los ficheros y directorios
    /// esta detallada en formato pares de valores separados por comas,
    /// por lo que hay que hacer un procesado de dicha informacion
    FTP.List(StringList, '', true);
    files := ExtractFTPFiles(StringList);
    for fileName in files do begin
      /// ... aqui va el proceseo de descarga ...
      Memo1.Lines.Add(fileName);
    end;
  finally
    StringList.Free;
  end;

Última edición por Casimiro Notevi fecha: 23-02-2023 a las 14:13:59. Razón: Poner etiquetas [delphi] [/delphi] al código.
Responder Con Cita
 



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
Descargar Archivos de Internet con C++ yelian C++ Builder 15 08-05-2010 15:31:27
Descargar archivos de un servidor Dean Lazarus, FreePascal, Kylix, etc. 2 20-10-2008 19:28:11
Descargar archivos del Servidor chrids506 Internet 5 04-02-2008 23:49:25
Descargar Archivos Deiv HTML, Javascript y otros 6 25-12-2007 08:52:55
¿Descargar Archivos de Sitios con Contraseña? JXJ Varios 0 01-10-2007 23:21:11


La franja horaria es GMT +2. Ahora son las 14:11:05.


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