Позволяет удобно управлять созданием и удалением временных файлов.
Для обращения к методам модуля используется свойство глобального контекста ВременныеФайлы, например:
ВременныйКаталог = ВременныеФайлы.СоздатьКаталог();
| Метод | Описание |
|---|---|
НовоеИмяФайла(Расширение = "tmp") |
генерирует уникальное имя, по которому можно создать временный файл |
СоздатьФайл(Расширение = "tmp") |
создает файл во временном каталоге системы, возвращает путь |
СоздатьКаталог(Расширение = "tmp") |
создает каталог во временном каталоге системы, возвращает путь |
Удалить() |
удаляет все ранее созданные файлы и каталоги |
УдалитьФайл(Путь) |
удаляет указанный файл/каталог. Если у файла указан файловый атрибут "только для чтения", перед удалением происходит попытка снять этот атрибут. |
БезопасноУдалитьФайл(Путь) |
удаляет указанный файл полностью аналогично методу УдалитьФайл |
УдалитьФайлСИсключением(Путь) |
удаляет файл/каталог, при сбое пробрасывает исходное исключение файловой операции. Снимает readonly у самого объекта и содержимого каталога. Отсутствующий путь считается успешно удаленным. |
Файлы() |
возвращает массив с путями ко всем временным файлам |
УдалитьНакопленныеВременныеФайлы(ВременныеФайлыДо) |
удаляются все накопленные временные файлы, которые были добавлены после фиксации набора временных файлов с помощью метода Файлы |
УдалитьФайл и БезопасноУдалитьФайл возвращают Булево и логируют ошибку при неудаче. Для передачи причины сбоя очистки вызывающему коду (например, в результат теста OneUnit) используйте УдалитьФайлСИсключением.
Все временные файлы управляются классом МенеджерВременныхФайлов. Один экземпляр этого класса библиотека tempfiles создает автоматически и регистрирует его, как глобальное свойство ВременныеФайлы.
Если вы хотите создать отдельный перечень автоматически управляемых временных файлов - вы можете создать свой объект временных файлов с помощью конструкции Новый.
#Использовать tempfiles
Сообщить(ТипЗнч(ВременныеФайлы)); //Глобальный менеджер временных файлов, представленный глобальным свойством ВременныеФайлы
МоиВременные = Новый МенеджерВременныхФайлов();
Сообщить(ТипЗнч(МоиВременные)); // собственный список временных файлов
// при выполнении будет выведено:
// МенеджерВременныхФайлов
// МенеджерВременныхФайловВремФайл = ВременныеФайлы.СоздатьФайл();
МойМенеджер = Новый МенеджерВременныхФайлов();
ВремФайлОтдельный = МойМенеджер.СоздатьФайл();
ВременныеФайлы.Удалить(); // все файлы, созданные менеджером ВременныеФайлы - удалены. Файл менеджера МойМенеджер - не тронут.
МойМенеджер.Удалить(); // все файлы, созданные менеджером МойМенеджер - удалены. Файл менеджера ВременныеФайлы, и всех прочих менеджеров - не тронуты.opm install --local --dev
oscript_modules/bin/oneunit e -d testsТесты охватывают весь публичный API, readonly-файлы и каталоги, повторную очистку и передачу причины ошибки в результат OneUnit. Проверки блокировки открытого файла выполняются в Windows.
GitHub Actions запускает тесты на Windows, Linux и macOS с версиями OneScript stable и dev. Workflow релиза публикует пакет в хаб через OIDC без постоянного токена. Для доверенной публикации используется release.yml из репозитория oscript-library/tempfiles на тегах v*; ручной запуск также следует выполнять на теге релиза.