Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Работа с локальной файловой системой
Дальше: Удалить файлы в каталоге

Найти файлы в каталоге

Предположим, нам нужно найти файлы, находящиеся в определенном каталоге, которые соответствуют маске, заданной в поле ввода демонстрационной обработки (реквизит МаскаФайлов).

Для решения этой задачи добавим команду НайтиФайлы. Обработчик команды заполним следующим образом (листинг 6.1).

Листинг 6.1. Обработчик команды «НайтиФайлы»

&НаКлиенте

Процедура НайтиФайлыВКаталоге(Команда)

 

ВыбратьКаталог("Выбор каталога для поиска файлов", Новый ОписаниеОповещения("ПослеВыбораКаталогаДляПоиска", ЭтотОбъект));

 

КонецПроцедуры

Сначала нам нужно выбрать каталог, в котором будет выполняться поиск файлов. Для этого мы вызываем процедуру ВыбратьКаталог(), в которую передаем заголовок диалога и описание оповещения, указывающее на экспортную процедуру, которая будет выполнена после того, как пользователь выберет каталог (листинг 6.2).

Листинг 6.2. Процедура «ВыбратьКаталог()»

&НаКлиенте

Процедура ВыбратьКаталог(ЗаголовокДиалога, Оповещение)

 

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);

Диалог.Заголовок = ЗаголовокДиалога;

Диалог.Показать(Оповещение);

 

КонецПроцедуры

Отображение диалога для выбора мы будем выполнять с помощью немодального метода Показать() объекта ДиалогВыбораФайла. В этот метод мы передаем описание оповещения, содержащееся в параметре Оповещение и указывающее на экспортную процедуру ПослеВыбораКаталогаДляПоиска(), которая будет вызвана после выбора каталога пользователем (листинг 6.3).

Листинг 6.3. Процедура «ПослеВыбораКаталогаДляПоиска()»

&НаКлиенте

Процедура ПослеВыбораКаталогаДляПоиска(ВыбранныеФайлы, Параметры) Экспорт

 

Если ВыбранныеФайлы = Неопределено Тогда

Возврат;

КонецЕсли;

 

КаталогПоиска = ВыбранныеФайлы[0];

Если ПустаяСтрока(МаскаФайлов) Тогда

МаскаФайлов = "*.*";

КонецЕсли;

 

// Найти файлы в выбранном каталоге по указанной маске.

НачатьПоискФайлов(Новый ОписаниеОповещения("НайтиФайлыВКаталогеЗавершение", ЭтотОбъект), КаталогПоиска, МаскаФайлов);

 

КонецПроцедуры

В этом обработчике оповещения, в случае если каталог выбран, мы получаем путь к каталогу как первый элемент массива, содержащийся в параметре ВыбранныеФайлы, и вызываем процедуру НачатьПоискФайлов(), в которую передаем этот каталог и маску для поиска файлов, заданную в поле ввода МаскаФайлов.

Первым параметром в немодальный метод НачатьПоискФайлов() мы передаем описание оповещения, указывающее на экспортную процедуру НайтиФайлыВКаталогеЗавершение(), которая будет вызвана по окончании поиска файлов (листинг 6.4).

Листинг 6.4. Процедура «НайтиФайлыВКаталогеЗавершение()»

&НаКлиенте

Процедура НайтиФайлыВКаталогеЗавершение(МассивФайлов, Дополнительно) Экспорт

 

Сообщение = Новый СообщениеПользователю;

 

Для Каждого Файл Из МассивФайлов Цикл

Сообщение.Текст = "Найден файл - " + Файл.Имя;

Сообщение.Сообщить();

КонецЦикла;

 

КонецПроцедуры

В этой процедуре в параметре МассивФайлов содержится массив найденных файлов в виде объектов Файл. В цикле обхода этого массива мы показываем короткое имя каждого файла (имя с расширением – Файл.Имя) в сообщении пользователю.

Назад: Работа с локальной файловой системой
Дальше: Удалить файлы в каталоге