// ================================================= ==================== =======================
// atravessa um arquivo em uma pasta,
// Instruções para uso
// _getFilelist (listbox1.items, 'c:/*. Doc');
// _getFilelist (myTStringList, 'c:/*. Exe');
// ================================================= ==================== =======================
Procedimento TForm1._GetFilelist (Atrings: TStrings; ASOURFILE: String);
var Sour_Path, Sour_File: String;
Tmplist: tStringList;
FileRec: TSearchRec;
Começar
Sour_Path: = ExtractFilePath (asourfile);
Sour_File: = ExtractFilename (asourfile);
Se não o DirectoryExists (Sour_Path), então
Começar
Atrings.clear;
saída;
fim;
Tmplist: = tStringList.create;
Tmplist.clear;
Se Findfirst (Sour_Path+Sour_file, FaanyFile, FileRec) = 0 então
repita
if ((filerec.attr e fadirectory) = 0) Então
Começar
Tmplist.add (Sour_path+filerec.name)
fim;
Até FindNext (filerec) <> 0;
Sysutils.findclose (filerec);
Atrings.assign (tmplist);
Tmplist.Free;
fim;
// ================================================= ==================== =======================
// viaja por uma determinada pasta e um determinado arquivo sob uma subpasta,
// Instruções para uso
// _GetFilelist (listbox1.items, 'c:/', '*.doc');
// _getFilelist (myTStringList, 'c:/', '*.exe');
// ================================================= ==================== =======================
Procedimento _GetFileLelist (Atrings: TStrings; ASOURFILE,
Nome do arquivo: string);
var Sour_Path, Sour_File: String;
Tmplist: tStringList;
FileRec, SubfileRec: TSearchRec;
I: Inteiro;
Começar
Se RightStr (Trim (asourfile), 1) <> '/' então
Sour_path: = Trim (asourfile) + '/'
outro
Sour_Path: = Trim (asourfile);
Sour_file: = nome do arquivo;
Se não o DirectoryExists (Sour_Path), então
Começar
Atrings.clear;
saída;
fim;
Tmplist: = tStringList.create;
Tmplist.clear;
Se Findfirst (Sour_Path+'*.*', FaanyFile, filerec) = 0 então
repita
if ((filerec.attr e fadirectory) <> 0) Então
Começar
if ((filerec.name <> '.') e (filerec.name <> '..')) então
_GetFilelist (atrings, Sour_Path + filerec.name + '/', Sour_file);
fim
outro
Se Findfirst (Sour_Path + FileName, FaanyFile, SubfileRec) = 0 então
repita
if ((subfilerec.attr e fadirectory) = 0) Então
Tmplist.add (Sour_Path+SubfileRec.Name);
Até FindNext (SubfileRec) <> 0;
Até FindNext (filerec) <> 0;
Sysutils.findclose (filerec);
para i: = 0 para tmplist.count -1 do
Atrings.add (tmplist.strings [i]);
Tmplist.Free;
fim;