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

Удалить файлы в каталоге

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

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

Листинг 6.5. Обработчик команды «УдалитьФайлыВКаталоге»

&НаКлиенте

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

 

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

 

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

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

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

&НаКлиенте

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

 

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

Возврат;

КонецЕсли;

 

КаталогУдаления = ВыбранныеФайлы[0];

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

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

КонецЕсли;

 

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

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

КаталогУдаления, МаскаФайлов);

 

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

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

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

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

&НаКлиенте

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

 

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

Сообщение.Текст = "Файлы по маске: " + МаскаФайлов + " в каталоге: " + Каталог + " удалены";

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

 

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

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

Обратите внимание, что в нашем примере реквизит МаскаФайлов заполняется значением «*.*», в случае если маска файлов не указана (см. листинг 6.6). В результате в выбранном каталоге могут быть удалены все файлы, но сам каталог будет существовать. Если нужно удалить и сам пустой каталог, то третий параметр метода УдалитьФайлыВКаталогеЗавершение(), в котором задается маска для удаления файлов, можно не указывать.

Назад: Найти файлы в каталоге
Дальше: Создать новый каталог