Показать сообщение отдельно
  #1  
Старый 24.03.2011, 12:44
dzen dzen вне форума
Прохожий
 
Регистрация: 24.03.2011
Сообщения: 1
Версия Delphi: Lazarus
Репутация: 10
По умолчанию Проблема в сканировании директорий на файлы с заданной маской

Есть процедура, нашёл где-то на форуме и решил применить. Она находит все файлы по маске и помещает в список.
Код:
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, то сканирование вложенных директорий не происходит. Помогите найти ошибку, пожалуйста...
Ответить с цитированием