file
Сырое чтение и запись файлов в собственном каталоге плагина.
file читает и пишет обычные файлы — байтовую строку целиком, без разбора
формата. Для структурированных данных (таблиц) есть store/datafile; file
для всего остального: csv-экспорт, готовый json, любой текстовый или бинарный
формат, который плагин собирает сам.
Песочница
Все имена — только внутри plugin.data_dir(), той же папки, куда пишут
db.open() и store. Подпапок нет — name не может содержать /, \
или что-то похожее на путь.
Имя — это stem или stem.ext:
stem: буквы, цифры, _, -
.ext — необязательно, ровно одна точка на всё имя, только буквы и цифры
- максимум 64 символа
Валидно: report.csv, export_2026.json, state.
Невалидно: ../evil.txt, sub/dir.txt, a.b.c, .hidden, hidden..
Предел размера
Одно чтение или одна запись/дозапись — не больше 4 МиБ. Больше — nil и
причина, ещё до того, как файл открыт: частично записанного файла при отказе
не остаётся.
file.read
Читает содержимое файла целиком.
Аргументы
Возвращает
Пример
Отсутствие файла — тоже ошибка здесь (nil, "cannot open ..."), в отличие от
file.size, где отсутствие файла — просто nil без причины.
Смотри также
file.write
Перезаписывает файл целиком (или создаёт его).
Аргументы
Возвращает
Пример
Для дозаписи в конец существующего файла — file.append.
Смотри также
file.append
Дописывает в конец файла, не трогая то, что уже было (или создаёт его).
Аргументы
Возвращает
Пример
Предел 4 МиБ — на один вызов, не на итоговый размер файла: у file.append
нет ограничения на то, насколько большим станет файл со временем. Для
самоограничивающегося лога с ротацией по дням — log.write.
file.exists
Проверяет, есть ли файл в каталоге плагина.
Аргументы
Возвращает
Пример
file.remove
Удаляет файл из каталога плагина.
Аргументы
Возвращает
Пример
file.size
Возвращает размер файла в байтах.
Аргументы
Возвращает
Пример
Смотри также
file.list
Возвращает имена всех файлов верхнего уровня в каталоге плагина.
Возвращает
Пример
Подпапка logs/, которую создаёт log.write, в список не
попадает — это отдельное хранилище, не файлы плагина.