bslls:MissingTemporaryFileDeletion¶
Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion)¶
- Тип: Ошибка
- Важность: Важный
- Включена по умолчанию: Да
- Теги:
badpractice,standard
Описание диагностики¶
После окончания работы с временным файлом или каталогом, его необходимо удалить самостоятельно. Нельзя рассчитывать на автоматическое удаление файлов и каталогов при следующем запуске платформы, это может привести к исчерпанию свободного места в каталоге временных файлов.
Примеры¶
Неправильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);
// далее нет удаления файла
Правильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);
// Работа с файлом
...
// Удаляем временный файл
Попытка
УдалитьФайлы(ИмяПромежуточногоФайла);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Особенности работы¶
Диагностика определяет корректность работы с временными файлами по наличию методов удаления либо перемещения.
Если в прикладном решении используется свой метод удаления/перемещения поверх платформенного, то стоит указать его в параметре диагностики, добавив через |. Диагностика понимает как глобальные методы, так и расположенные в общих модулях или модулях менеджеров.
Ниже приведены примеры настройки
- Глобальный метод
МоеУдалениеФайловв модулеГлобальныйСерверв параметре указывается какМоеУдалениеФайлов - Метод
МоеУдалениеФайловв общем модулеФайлыКлиентСерверв параметре указывается какФайлыКлиентСервер.МоеУдалениеФайлов - Метод
МоеУдалениеФайловв модуле менеджера справочникаФайловыеОперациив параметре указывается какСправочники.ФайловыеОперации.МоеУдалениеФайлов
и так далее.
Источники¶
Соответствие стандартам¶
- #std542, п. 1.4: Доступ к файловой системе из кода конфигурации — Диагностика «Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion)» проверяет условие пункта 1.4 стандарта std542.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later