ENUMERER LES FICHIER D'UN REPERTOIRE

dayday42 Messages postés 2 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 30 janvier 2004 - 30 janv. 2004 à 14:33
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 27 juil. 2005 à 16:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11664-enumerer-les-fichier-d-un-repertoire

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
27 juil. 2005 à 16:55
Salut DelphiCool, je te propose un autre code plus complet:

var FicSTL : TStringList;
procedure EnumFiles(Dir,Mask:string);
var AttrWord : integer;
Pntr : string;
Recherche : TSearchRec;
begin
AttrWord:=faReadOnly or faArchive;
ChDir(Dir);
FicSTL.Clear;
while Mask<>'' do
begin
//PREND LE PREMIER MASQUE
if Pos(';',Mask)=0 then Pntr:=Mask
else Pntr:=Copy(Mask,1,Pos(';',Mask)-1);
//CHERCHE LES FICHIERS REPONDANT AU MASQUE
if FindFirst(Pntr, AttrWord, Recherche)=0 then
begin
repeat
FicSTL.Add(ExtractFileName(Recherche.Name));
until FindNext(Recherche)<>0;
sysutils.FindClose(Recherche);
end;
//PASSE AU FILTRE SUIVANT S'IL Y A
if Pos(';',Mask)=0 then Break
else Mask:=Copy(Mask,Pos(';',Mask)+1,Length(Mask));
end;
end;
initialization
FicSTL:=TStringList.Create;
finalization
FicSTL.Free;
end.

Ca gère les masques. Alors on pourra faire :
EnumFiles('c:\dossier\','*.exe;*.dll');
ListBox1.Items.Clear;
ListBox1.Items.AddStrings(FicSTL);

Si je passe par FicSTL, c'est juste que c'est une variable de passage utile dans mon N°32533.

Ce bout de code est tiré de la VCL, remanié pour manier des STRING au lieu des PCHAR.
dayday42 Messages postés 2 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 30 janvier 2004
30 janv. 2004 à 14:33
Bonjour
cette source est très bien et très complète, elle m'a bien aidée et j'en suis contente
Thanks for great source!
Rejoignez-nous