6.8 KiB
Библиотека file
Библиотека функций для работы с файлами
file.resolve(путь: str) -> str
Функция приводит запись точка_входа:путь (например user:worlds/house1) к обычному пути. (например C://Users/user/.voxeng/worlds/house1)
Note
Функцию не нужно использовать в сочетании с другими функциями из библиотеки, так как они делают это автоматически
Возвращаемый путь не является каноническим и может быть как абсолютным, так и относительным.
file.read(путь: str) -> str
Читает весь текстовый файл и возвращает в виде строки
file.read_bytes(путь: str, [опционально] usetable) -> array of integers
Читает файл в массив байт. При значении usetable = false возвращает Bytearray вместо table.
file.is_writeable(путь: str) -> bool
Проверяет, доступно ли право записи по указанному пути.
file.write(путь: str, текст: str) -> nil
Записывает текст в файл (с перезаписью)
file.write_bytes(путь: str, data: array of integers)
Записывает массив байт в файл (с перезаписью)
file.length(путь: str) -> int
Возвращает размер файла в байтах, либо -1, если файл не найден
file.exists(путь: str) -> bool
Проверяет, существует ли по данному пути файл или директория
file.isfile(путь: str) -> bool
Проверяет, существует ли по данному пути файл
file.isdir(путь: str) -> bool
Проверяет, существует ли по данному пути директория
file.mkdir(путь: str) -> bool
Создает директорию. Возвращает true если была создана новая директория
file.mkdirs(путь: str) -> bool
Создает всю цепочку директорий. Возвращает true если были созданы директории.
file.list(путь: str) -> массив строк
Возвращает список файлов и директорий в указанной.
file.list_all_res(путь: str) -> массив строк
Возвращает список файлов и директорий в указанной без указания конкретной точки входа.
file.find(путь: str) -> str
Ищет файл от последнего пака до res. Путь указывается без префикса. Возвращает путь с нужным префиксом. Если файл не найден, возвращает nil.
file.remove(путь: str) -> bool
Удаляет файл. Возращает true если файл существовал. Бросает исключение при нарушении доступа.
file.remove_tree(путь: str) -> int
Рекурсивно удаляет файлы. Возвращает число удаленных файлов.
file.read_combined_list(путь: str) -> массив
Совмещает массивы из JSON файлов разных паков.
file.read_combined_object(путь: str) -> массив
Совмещает объекты из JSON файлов разных паков.
file.mount(путь: str) --> str
Монтирует ZIP-архив как файловой системе. Возвращает имя точки входа.
file.unmount(точка_входа: str) --> str
Размонтирует точку входа.
file.create_zip(директория: str, выходной_файл: str) --> str
Создаёт ZIP-архив из содержимого указанной директории.
file.name(путь: str) --> str
Извлекает имя файла из пути. Пример: world:data/base/config.toml -> config.toml.
file.stem(путь: str) --> str
Извлекает имя файла из пути, удаляя расширение. Пример: world:data/base/config.toml -> config.
file.ext(путь: str) --> str
Извлекает расширение из пути. Пример: world:data/base/config.toml -> toml.
file.prefix(путь: str) --> str
Извлекает точку входа (префикс) из пути. Пример: world:data/base/config.toml -> world.
file.parent(путь: str) --> str
Возвращает путь на уровень выше. Пример: world:data/base/config.toml -> world:data/base
file.path(путь: str) --> str
Убирает точку входа (префикс) из пути. Пример: world:data/base/config.toml -> data/base/config.toml
file.join(директория: str, путь: str) --> str
Соединяет путь. Пример: file.join("world:data", "base/config.toml) -> world:data/base/config.toml.
Следует использовать данную функцию вместо конкатенации с /, так как префикс:/путь не является валидным.
file.open(путь: str, режим: str) --> io_stream
Открывает поток для записи/чтения в файл по пути путь.
Аргумент режим это список отдельных режимов, в котором каждый обозначается одним символом
r - Чтение из файла
w - Запись в файл
b - Открыть поток в двоичном режиме (см. ../io_stream.md)
+ - Работает совместно с w. Добавляет к существующим данным новые (append-mode)
file.open_named_pipe(имя: str, режим: str) -> io_stream
Открывает поток для записи/чтения в Named Pipe по пути путь
/tmp/ или \\\\.\\pipe\\ добавлять не нужно - движок делает это автоматически.
Доступные режимы такие же, как и в file.open, за исключением +