// ========================================================================== ================== ====================================
// пересекать файл в папке,
// инструкции по использованию
// _getFilelist (listbox1.items, 'c:/*. Doc');
// _getFilelist (MytStringList, 'c:/*. Exe');
// ========================================================================== ================== ====================================
Процедура tform1._getFilelist (Astrings: tstrings; Asourfile: String);
var sour_path, sour_file: string;
Tmplist: tstringlist;
FileRec: tsearchRec;
Начинать
sour_path: = ExtractfilePath (asourfile);
sour_file: = ExtractFilename (asourfile);
Если не каталогэксексы (sour_path), то тогда
Начинать
Astrings.clear;
Выход;
конец;
Tmplist: = tstringlist.create;
Tmplist.clear;
Если findfirst (sour_path+sour_file, faanyfile, filerec) = 0 тогда
повторить
if ((filerec.attr и fadirectory) = 0) тогда
Начинать
Tmplist.add (sour_path+filerec.name)
конец;
пока FindNext (fileCec) <> 0;
Sysutils.findclose (filerec);
Astrings.assign (tmplist);
Tmplist.free;
конец;
// ========================================================================== ================== ====================================
// Путешествие через определенную папку и определенный файл в подпапке,
// инструкции по использованию
// _getfilelist (listbox1.items, 'c:/', '*.doc');
// _getFilelist (MytStringList, 'c:/', '*.exe');
// ========================================================================== ================== ====================================
Процедура _getFilelist (Astrings: TStrings; Asourfile,
Имя файла: строка);
var sour_path, sour_file: string;
Tmplist: tstringlist;
FileRec, subfileerec: tsearchRec;
я: целое число;
Начинать
Если rightstr (trim (asourfile), 1) <> '/' Тогда
sour_path: = trim (asourfile) + '/'
еще
sour_path: = trim (asourfile);
sour_file: = имя файла;
Если не каталогэксексы (sour_path), то тогда
Начинать
Astrings.clear;
Выход;
конец;
Tmplist: = tstringlist.create;
Tmplist.clear;
Если findfirst (sour_path+'*.*', faanyfile, filerec) = 0 тогда
повторить
if ((filec.attr и fadirectory) <> 0) тогда
Начинать
if ((filec.name <> '.') и (filec.name <> '..')) тогда
_GetFilelist (Astrings, sour_path + fileerec.name + '/', sour_file);
конец
еще
Если findfirst (sour_path + имя файла, faanyfile, subfilerec) = 0 тогда
повторить
if ((subfilerec.attr и fadirectory) = 0), тогда
Tmplist.add (sour_path+subfilerec.name);
пока FindNext (subfileCeec) <> 0;
пока FindNext (fileC) <> 0;
Sysutils.findclose (FileRec);
для i: = 0 до tmplist.count -1 do
Astrings.add (tmplist.strings [i]);
Tmplist.free;
конец;