Есть процедура, нашёл где-то на форуме и решил применить. Она находит все файлы по маске и помещает в список.
Код:
procedure TForm1.FileScanning(dir, maska: string);
var
sr: TSearchRec;
recur: boolean;
begin
recur := True;
if (dir[Length(dir)] = '\') then
SetLength(dir, Length(dir) - 1);
if FindFirstUTF8(dir + '\' + maska, faAnyFile, sr) = 0 then
begin
if (sr.Attr or faDirectory) = sr.Attr then
begin
if (recur = True) then
begin
if (sr.Name <> '.') and (sr.Name <> '..') then
FileScanning(dir + '\' + sr.Name+'\',maska);
end;
end
else ListBox1.Items.Add(dir + '\' + sr.Name);
while FindNextUTF8(sr) = 0 do
begin
if (sr.Attr or faDirectory) = sr.Attr then
begin
if (recur = True) then
begin
if (sr.Name <> '.') and (sr.Name <> '..') then
FileScanning(dir + '\' + sr.Name+'\', maska);
end;
end
else
ListBox1.Items.Add(dir + '\' + sr.Name);
end;
end;
FindClose(sr);
end;
Проюлема в том, что если маска задано *.* - то всё ОК, а если, скажем, *.txt, то сканирование вложенных директорий не происходит. Помогите найти ошибку, пожалуйста...