// =============================================================. ==================== ====================.
// traverse un fichier dans un dossier,
// Instructions pour une utilisation
// _GetFileList (listbox1.items, 'c: / *. Doc');
// _GetFileList (myTStringList, 'c: / *. Exe');
// =============================================================. ==================== ====================.
Procédure tform1._getFileList (astrings: tStrings; asourFile: String);
var Sour_Path, Sour_file: String;
Tmplist: tStringList;
Filerec: tsearchrec;
Commencer
Sour_Path: = ExtractFilePath (AsourFile);
Sour_file: = extractFileName (AsourFile);
Si pas DirectoryExists (Sour_Path)
Commencer
Astrings.clear;
sortie;
fin;
Tmplist: = tStringList.Create;
Tmplist.clear;
Si findFirst (Sour_Path + Sour_file, faanyfile, filerec) = 0 alors
répéter
if ((filerec.attr et fadirectory) = 0) alors
Commencer
Tmplist.add (sour_path + filerec.name)
fin;
Jusqu'à FindNext (filerec) <> 0;
Sysutils.findclose (filerec);
Astrings.assign (tmplist);
Tmplist.free;
fin;
// =============================================================. ==================== ====================.
// voyage à travers un certain dossier et un certain fichier sous un sous-dossier,
// Instructions pour une utilisation
// _GetFileList (listbox1.items, 'c: /', '* .doc');
// _GetFileList (myTStringList, 'c: /', '* .exe');
// =============================================================. ==================== ====================.
Procédure _getFileList (astrages: tStrings; asourfile,
Nom de fichier: chaîne);
var Sour_Path, Sour_file: String;
Tmplist: tStringList;
Filerec, subfilerec: tsearchrec;
I: entier;
Commencer
Si droitestr (trim (asourfile), 1) <> '/' puis
Sour_Path: = Trim (AsourFile) + '/'
autre
Sour_Path: = Trim (AsourFile);
Sour_file: = nom de fichier;
Si pas DirectoryExists (Sour_Path)
Commencer
Astrings.clear;
sortie;
fin;
Tmplist: = tStringList.Create;
Tmplist.clear;
Si findFirst (Sour_Path + '*. *', faanyfile, filerec) = 0 alors
répéter
if ((filerec.attr et fadirectory) <> 0) alors
Commencer
if ((filerec.name <> '.') et (filerec.name <> '..')) puis
_GetFileList (astrings, sour_path + filerec.name + '/', sour_file);
fin
autre
Si findFirst (sour_path + nom de fichier, faanyfile, subfilelerec) = 0 alors
répéter
if ((subfilerec.attr et fadirectory) = 0) alors
Tmplist.add (sour_path + subfilerec.name);
Jusqu'à FindNext (sous-filerec) <> 0;
Jusqu'à FindNext (filerec) <> 0;
Sysutils.findclose (filerec);
pour i: = 0 à tmplist.Count -1 do
Astrings.add (tmplist.strings [i]);
Tmplist.free;
fin;