Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Ошибка |
BSL OS |
Важный |
Да |
5 |
badpractice standard |
Параметры¶
Имя | Тип | Описание | Значение по умолчанию |
---|---|---|---|
searchDeleteFileMethod |
Строка |
Ключевые слова поиска методов удаления / перемещения файлов |
УдалитьФайлы|DeleteFiles|НачатьУдалениеФайлов|BeginDeletingFiles|ПереместитьФайл|MoveFile |
Описание диагностики¶
После окончания работы с временным файлом или каталогом, его необходимо удалить самостоятельно. Нельзя рассчитывать на автоматическое удаление файлов и каталогов при следующем запуске платформы, это может привести к исчерпанию свободного места в каталоге временных файлов.
Примеры¶
Неправильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);
// далее нет удаления файла
Правильно:
ИмяПромежуточногоФайла = ПолучитьИмяВременногоФайла("xml");
Данные.Записать(ИмяПромежуточногоФайла);
// Работа с файлом
...
// Удаляем временный файл
Попытка
УдалитьФайлы(ИмяПромежуточногоФайла);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие'"), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Особенности работы¶
Диагностика определяет корректность работы с временными файлами по наличию методов удаления либо перемещения.
Если в прикладном решении используется свой метод удаления/перемещения поверх платформенного, то стоит указать его в параметре диагностики, добавив через |
. Диагностика понимает как глобальные методы, так и расположенные в общих модулях или модулях менеджеров.
Ниже приведены примеры настройки
- Глобальный метод
МоеУдалениеФайлов
в модулеГлобальныйСервер
в параметре указывается какМоеУдалениеФайлов
- Метод
МоеУдалениеФайлов
в общем модулеФайлыКлиентСервер
в параметре указывается какФайлыКлиентСервер.МоеУдалениеФайлов
- Метод
МоеУдалениеФайлов
в модуле менеджера справочникаФайловыеОперации
в параметре указывается какСправочники.ФайловыеОперации.МоеУдалениеФайлов
и так далее.
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:MissingTemporaryFileDeletion-off
// BSLLS:MissingTemporaryFileDeletion-on
Параметр конфигурационного файла¶
"MissingTemporaryFileDeletion": {
"searchDeleteFileMethod": "УдалитьФайлы|DeleteFiles|НачатьУдалениеФайлов|BeginDeletingFiles|ПереместитьФайл|MoveFile"
}