// =================================================== ==================== =======================
// atravesar un archivo en una carpeta,
// Instrucciones para usar
// _getFilelist (listBox1.Items, 'c:/*. Doc');
// _getFilelist (mytStringList, 'c:/*. Exe');
// =================================================== ==================== =======================
Procedimiento tForm1._getFilelist (Astrings: tstrings; asourfile: string);
var Sour_path, Sour_File: String;
Tmplist: tStringList;
FILEREC: TSearchRec;
Comenzar
Sour_Path: = ExtractFilePath (asourFile);
Sour_file: = ExtractFileName (asourFile);
Si no es directorioxists (Sour_Path) entonces
Comenzar
Astrings. CLEAR;
salida;
fin;
Tmplist: = tStringList.create;
Tmplist.clear;
Si FindFirst (Sour_Path+Sour_File, FaanyFile, FileRec) = 0 entonces
repetir
if ((filerec.attr y fadirectory) = 0) entonces
Comenzar
Tmplist.add (Sour_Path+FileRec.name)
fin;
Hasta FindNext (FileRec) <> 0;
Sysutils.findclose (FilEREC);
Astrings.Assign (tmplist);
Tmplist.Free;
fin;
// =================================================== ==================== =======================
// viajar a través de una determinada carpeta y un cierto archivo bajo una subcarpeta,
// Instrucciones para usar
// _getFilelist (listBox1.Items, 'c:/', '*.doc');
// _getFilelist (mytStringList, 'c:/', '*.exe');
// =================================================== ==================== =======================
procedimiento _getFileList (Astrings: tstrings; asourfile,
Nombre de archivo: cadena);
var Sour_Path, Sour_File: String;
Tmplist: tStringList;
FileRec, Subfilerec: TSearchRec;
I: entero;
Comenzar
if rightstr (trim (asourfile), 1) <> '/' entonces entonces
Sour_path: = Trim (asourfile) + '/'
demás
Sour_Path: = TRIM (asourFile);
Sour_file: = FileName;
Si no es directorioxists (Sour_Path) entonces
Comenzar
Astrings. CLEAR;
salida;
fin;
Tmplist: = tStringList.create;
Tmplist.clear;
Si findFirst (Sour_Path+'*.*', faanyfile, filerec) = 0 entonces
repetir
if ((filerec.attr y fadirectory) <> 0) luego
Comenzar
if ((filerec.name <> '.') y (filerec.name <> '..')) luego
_GetFilelist (Astrings, Sour_Path + FileRec.name + '/', Sour_File);
fin
demás
Si FindFirst (Sour_Path + FileName, FaanyFile, Subfilerec) = 0 entonces
repetir
if ((subfilerec.attr y fadirectory) = 0) entonces
Tmplist.add (Sour_Path+Subfilerec.name);
Hasta FindNext (Subfilerec) <> 0;
Hasta FindNext (FileRec) <> 0;
Sysutils.findclose (FilEREC);
para i: = 0 a tmplist.count -1 do
Astrings.add (tmplist.strings [i]);
Tmplist.Free;
fin;