Наверняка перед многими когда-либо вставала задача: открыть ряд файлов одного типа, но расположенных в различных подкаталогах.

Если у вас есть Total Commander, то это конечно не составляет труда. Там можно просмотреть все файлы в данной папке и её подпапках, можно вывести результат поиска на панель:

Total Commander Search

Во многих случаях этого достаточно. Эти файлы можно перетянуть в редактор, браузер или другую программу, поддерживающую вставку файлов с помощью Drag’n'Drop. Но если программа не поддерживает Drag’n'Drop? Да и Total Commander может попросту не оказаться под рукой.

В Windows Vista можно легко и просто сразу открыть группу файлов. В диалоге открытия, как и во всех окнах Проводника, есть встроенный поиск.

opendialog

Введя в строку поиска фильтр файлов мы получим список всех нужных файлов во всех вложенных каталогах:

filter

testПроверим, как это работает. Дано: Delphi 2007 — 1 шт., компоненты TButton, TMemo и новый компонент TFileOpenDialog с закладки Vista Dialogs — тоже по 1 шт. А также прямые руки — 2 шт. TFileOpenDialog — это новый компонент, который представляет собой программный интерфейс для нового диалога открытия файлов в Windows Vista. Чтобы эксперимент удался, нужно выставить у компонента свойство Options := [fdoAllowMultiSelect], остальные значения нас не интересуют. Ну и под конец, чтобы эксперимент удался, пишем следующий код для события клика по кнопке:

procedure TForm2.Button1Click(Sender: TObject);
begin
  if FileOpenDialog1.Execute then
    Memo1.Lines := FileOpenDialog1.Files;
end;

После этого запускаем пример, выбираем какую-нибудь папку, вводим фильтр и получаем следующую картину:

result

Вот так просто решается данная задача в Windows Vista. Все найденные файлы корректно можно получить из диалога, вместе с правильными путями. Так что несмотря на все разговоры об отсутствии чего-либо нового и удобного в этой ОС, здесь полно разных удобств, которые хоть и не всегда заметно, но облегчают нашу работу.