Les Snippets

Connexion

Lister tous les fichiers d'un repertoire

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 21/08/2006 16:53:02 et initié par foufou2004 [Liste]
Date de mise à jour : 22/02/2009 17:05:34
Vue : 53343
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- PHP 5
- VBA
- VB6, VBA
- Windev
- C# 2.x
- C# 2.x
- VB 2005
- PHP 4, PHP 5
- PHP 5
- Javascript
- VB6
- Java
- Windev
- Python
- Delphi 5
- VB 2008
- VB6, VBA
- Voir tous les langages pour ce code snippet



Langage : Delphi 5
Date ajout : 14/02/2009
Posté par Caribensila [Liste]


{Liste (avec ou sans chemin complet) les fichiers d'un répertoire filtrés par leur extension,
ou tous les fichiers si aucune extension passée à la procedure.
SortFlag = 0   => Liste triée par ordre alphabétique
SortFlag = 1   => Liste triée par date de modification
SortFlag = 2   => Liste triée par date de création}

PROCEDURE FindFiles(Path: String; var ExtList, FilesList:  TStringList;
                         Const SortFlag : Integer = 0; Const  FullPathName : Boolean = false);
  VAR              FileInfo   : TSearchRec;
                         i               : Integer;
                        S               : string;
                        DateFormat : string;


          function IsWanted(FileName : String): Boolean;
            var        i : Integer;
            begin
            result := false;
            if (FileName='.') or (FileName='..') then exit;
            if ExtList.Count=0 then begin
              result := true;
              Exit;
            end;
            for i := 0 to ExtList.Count-1 do begin
              if AnsiUpperCase(ExtractFileExt(FileName))=AnsiUpperCase(ExtList[i]) then begin
                result := true;
                Break;
              end;
            end;
          end;


          function FileTimeToString(FileTime : TFileTime): String;
            var        SysTime    : TSystemTime;
                          LocalTime : TFileTime;
            begin
            result := '-------------------';
            if FileTimeToLocalFileTime( FileTime, LocalTime ) then begin
              if FileTimeToSystemTime( LocalTime, SysTime ) then begin
                result := DateTimeToStr(SystemTimeToDateTime(SysTime));
              end;
            end;
          end;


  BEGIN
  Path := IncludeTrailingPathDelimiter(Path);
  if not DirectoryExists(Path) then Exit;
  DateFormat := ShortDateFormat;
  ShortDateFormat := 'yyyy/MM/dd';
  if FindFirst(Path+'*', faAnyFile, FileInfo)=0 then begin
    repeat
      if IsWanted(FileInfo.Name) then
      case SortFlag of
        0 : begin
              if FullPathName then FilesList.Add(Path + FileInfo.Name)
              else FilesList.Add(FileInfo.Name);
            end;
        1 : begin
              if FullPathName then FilesList.Add(DateTimeToStr(FileDateToDateTime(FileInfo.Time)) + Path + FileInfo.Name)
              else FilesList.Add(DateTimeToStr(FileDateToDateTime(FileInfo.Time)) + FileInfo.Name);
            end;
        2 : begin
              if FullPathName then FilesList.Add(FileTimeToString(FileInfo.FindData.ftCreationTime) + Path + FileInfo.Name)
              else FilesList.Add(FileTimeToString(FileInfo.FindData.ftCreationTime) + FileInfo.Name);
            end;
      end;
    Until FindNext(FileInfo)<>0;
  end;
  ShortDateFormat := DateFormat;//On rétablit le ShortDateFormat.
  if SortFlag <> 0 then begin
    FilesList.Sort;
    for i := 0 to FilesList.Count-1 do begin
      S := FilesList[i];
      Delete(S,1,19);//On élimine les dates.
      FilesList[i] := S;
    end;
  end;
  FindClose(FileInfo);
END;



{Exemple 1
Liste les fichiers *.txt et *.rtf triés par ordre de création
avec leur chemin complet :


var  ExtList   : TStringList;
       FilesList : TStringList;
...

ExtList    := TStringList.Create;
FilesList := TStringList.Create;
try
  ExtList.Add('.txt');
  ExtList.Add('.rtf');
  FindFiles(Edit1.Text, ExtList, FilesList, 2, true);
  ListBox1.Items.Assign(FilesList);
finally
  FilesList.Free;
  ExtList.Free ;
end;}


{Exemple 2
Liste tous les fichiers triés par ordre alphabétique :


var  ExtList   : TStringList;
       FilesList : TStringList;
...

ExtList    := TStringList.Create;
FilesList := TStringList.Create;
try
  FindFiles(Edit1.Text, ExtList, FilesList);
  ListBox1.Items.Assign(FilesList);
finally
  FilesList.Free;
  ExtList.Free ;
end; }



Snippets en rapport avec : File, Fichier, Dossier, Liste, Folder



Codes sources en rapport avec : File, Fichier, Dossier, Liste, Folder

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE DE GESTION DES FICHIERS/DOSSIERS ==> INFOS (DATES, COPYRIGHT...), LISTING, COPIER, CORBEILLE, BOITES DE DIALOGUE ... LE TOUT PAR APIS
Ce code est une classe qui permet de faire différentes actions sur les fichiers et les dossiers, à s...

{C / C++ / C++.NET} LISTER LES FICHIERS D'UN REPERTOIRE + FILTRES
Programmé sous Linux. Compatible windows. Liste les fichiers d'un répertoire come indiqué dans le...

{PHP} CLASSE DIRECTORYITERATOR POUR PHP4
Dans le cadre d'un de mes projets, j'utilise la classe PHP 5 DirectoryIterator vraiment utile pour l...

{Visual Basic, VB6, VB.NET, VB 2005} MODIFICATIONS NOM DE FICHIERS DANS UN MÊME RÉPERTOIRE
C'est un tout petit code tout simple mais qui est pratique si on veut modifier rapidement les noms d...

{Visual Basic, VB6, VB.NET, VB 2005} LISTEUR DE FICHIER - SIMPLE MAIS PRATIQUE
Vous copiez l'exe dans un répertoire, vous le lancez et il génère la liste de tous les fichiers & ré...

{Visual Basic, VB6, VB.NET, VB 2005} LISTE LES FICHIERS D'UN DOSSIER (AVEC SOUS DOSSIERS ET SOUS SOUS DOSSIERS , ETC)
J'ai fait une recherche sur VbFrance et je me suis apercu que toutes les sources faisait une liste d...

{Visual Basic, VB6, VB.NET, VB 2005} SCANLIST V2.1
Mon petit programme sert a scanner un repertoire et à faire une liste des sous dossiers et fichiers ...

{Visual Basic, VB6, VB.NET, VB 2005} BIBLIOTHÈQUE POUR ANALYSE ET RÉCUPÉRATION RÉCURSIVE DES FICHIERS
Ce code se compose de plusieurs parties : Scandir : Scan les dossiers et retourne les fichiers don...

{ASP / ASP.NET} ASP.NET - SAUVEGARDER DANS UN FICHIER XML LA LISTE DES FICHIERS PRÉSENTS DANS UN RÉPERTOIRE DONNÉ
Pour différents besoins, un fichier XML peut être nécessaire contenant la liste des fichiers dans un...

{ColdFusion} COPIE DE FICHIERS (CUSTOM TAG)
ce custom tag vous permet de copier tous les fichiers d'un répertoire vers un autre. ...