Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #24  
Старый 09.12.2012, 13:16
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от MoS
Помогите переписать этот код для поиска с маской в подпапках!
Я делаю так:
Код:
procedure FindFiles(const Dir, Ext: string; ResultList: TStrings);

  procedure SubFind(const Path: string);
  var
    SR: TSearchRec;
  begin
    if FindFirst(Path + '*.*', faAnyFile, SR) = NO_ERROR then
    try
      repeat
        if (SR.Attr and faDirectory) = 0 then // File
        begin
          if AnsiSameText(Ext, ExtractFileExt(SR.Name)) then ResultList.Add(Path + SR.Name);
        end else // Dir
        begin
          if (SR.Name <> '.') and (SR.Name <> '..') then SubFind(Path + SR.Name + '\');
        end;
      until FindNext(SR) <> NO_ERROR;
    finally
      FindClose(SR);
    end;
  end;

begin
  SubFind(IncludeTrailingPathDelimiter(Dir));
end;
Подобный код я использую уже много лет и так часто, что могу гарантировать его полную работоспособность.

Пример использования:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items.BeginUpdate;
  try
    FindFiles('C:\WINDOWS', '.exe', ListBox1.Items);
  finally
    ListBox1.Items.EndUpdate;
  end;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
MoS (09.12.2012)
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025