IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Récupérer un ou des fichiers sur serveur FTP en filtrant par type d'extension


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut Récupérer un ou des fichiers sur serveur FTP en filtrant par type d'extension
    Bonjour

    J'utilise le composant Indy et une TListView (voir image ci-après) pour lister tous les fichiers sur un serveur FTP.

    Je voudrais savoir comment :

    - trier les fichiers par leurs types d'extensions au lieu de les avoir alphabétiquement ?
    - telecharger uniquement les fichiers d'un ou plusieurs type d'extensions (exemple - tous les fichiers zip ou jpg) ? (directement sur le serveur ou dans le TlistView)

    Merci d'avance pour votre aide

    A vous lire
    Cordialement
    Beauserge

    Nom : image TlistView Ftp.jpg
Affichages : 1710
Taille : 95,8 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu peux utiliser une TList et la méthode Sort.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    procedure TForm2.Button1Click(Sender: TObject);
    var
       Liste  : TList<string>;
       i      : integer;
    begin
       Liste := TList<string>.Create;
     
       try
          Liste.Add('a.b');
          Liste.Add('a.c');
          Liste.Add('b.e');
          Liste.Add('d.r');
          Liste.Add('a.k');
          Liste.Add('z.a');
     
          Liste.Sort(TComparer<string>.Construct(function(const Left, Right: string): integer
                                                 var
                                                    ExtLeft, ExtRight: string;
                                                 begin
                                                    ExtLeft  := ExtractFileExt(Left);
                                                    ExtRight := ExtractFileExt(Right);
     
                                                    if ExtLeft = ExtRight then
                                                    begin
                                                       if Left < Right then
                                                          Result := -1
                                                       else
                                                          if Left > Right then
                                                             Result := 1
                                                          else
                                                             Result := 0;
                                                    end
                                                    else
                                                       if ExtLeft < ExtRight then
                                                          Result := -1
                                                       else
                                                          if ExtLeft > ExtRight then
                                                             Result := 1
                                                          else
                                                             Result := 0;
                                                 end));
     
          for i := 0 to Liste.Count - 1 do
             Memo1.Lines.Add(Liste[i]);
       finally
          Liste.Free;
       end;
    end;
    Pour télécharger que les fichiers d'une extension, tu parcours la liste et si l'extension correspond tu télécharges.

    Tu peux aussi prendre les listes de Spring4D ou les FluentQuery de Malcolm Groves pour pouvoir "requêter" dans ta liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       for MonFichier in ObjectQuery<string>
                           .Select
                           .From(Liste)
                           .Where(function(aNom: string) : boolean
                                  begin
                                     Result := ExtractFileExt(aNom) = '.zip'
                                  end) do
       begin
          // téléchargement que des fichiers zip
          // ...
       end;
    Dernière modification par Invité ; 17/03/2017 à 09h12.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Bonjour Retwas

    dans le code pour trier la listview, ça ne passe pas.
    erreur ; attendu mais < trouvé ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
       Liste  : TList<string>;
    A te lire
    Beauserge

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Beauserge Voir le message
    dans le code pour trier la listview, ça ne passe pas.
    erreur ; attendu mais < trouvé ???
    Quelle est ta version de delphi ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Je possède la Version DELPHI 7 perso

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Beauserge Voir le message
    Je possède la Version DELPHI 7 perso
    Dans ce cas tu n'as pas les listes de générique ..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/05/2011, 20h06
  2. mettre des fichiers sur serveur
    Par chflb dans le forum JPA
    Réponses: 0
    Dernier message: 21/08/2008, 12h05
  3. + de 2000 fichiers sur serveur FTP
    Par _seb_ dans le forum WinDev
    Réponses: 4
    Dernier message: 17/09/2007, 10h59
  4. Erreur programme d'envoi fichier sur serveur ftp
    Par batssa dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 14h30
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo