Архивация
Здесь описаны функции для работы с архивами zip и tar.gz.

Функции

ArchiveName(finfo fi, str root) str

Функция ArchiveName объединяет поля Name и Dir в переменной типа finfo и возвращает путь файла для архива относительно корневого пути root.

CloseTarGz(handle h)

Функция CloseTarGz заканчивает создание .tar.gz архива. Параметр h - это идентификатор, который был возвращен функцией CreateTarGz.

CloseZip(handle h)

Функция CloseZip заканчивает создание .zip архива. Параметр h - это идентификатор, который был возвращен функцией CreateZip.

CreateTarGz(str name) handle

Функция CreateTarGz начинает создание .tar.gz архива с указанным именем. Вы можете добавлять файлы в этот архив с помощью функции CompressFile. Функция возвращает идентификатор, который нужно будет закрыть с помощью функции CloseTarGz.

CreateZip(str name) handle

Функция CreateZip начинает создание .zip архива с указанным именем. Вы можете добавлять файлы в этот архив с помощью функции CompressFile. Функция возвращает идентификатор, который нужно будет закрыть с помощью функции CloseZip.

CompressFile(handle h, str fname, str packname)

Функция CompressFile добавляет указанный файл fname в создаваемый архив. Параметр packname содержит относительный путь и имя файла с которым он будет сохранен в архиве. В качестве разделителя нужно использовать символ /. Архив предварительно должен быть создан с помощью функций CreateZip или CreateTarGz.
handle zip = CreateZip(`my.zip`)
CompressFile(zip, `../data/my.txt`, `my.txt`)
CompressFile(zip, `/home/user/folder/copy.txt`, `folder/copy.txt`)
CloseZip(zip)

ReadTarGz(str name) arr.finfo

Функция ReadTarGz возвращает список файлов в указанном tar.gz архиве. Поле Name содержит имя файла вместе с относительным путем.
arr.finfo list = ReadTarGz(`my.tar.gz`)
for fi in list : Println( "\{fi.Name} \{fi.Size}")

ReadZip(str name) arr.finfo

Функция ReadZip возвращает список файлов в указанном zip архиве. Поле Name содержит имя файла вместе с относительным путем.

TarGz(str name, str path)

Функция TarGz упаковывает файл или содержимое директории path в .tar.gz архив с именем name.
TarGz("/home/user/out/my.tar.gz", `/home/user/docs`)

UnpackTarGz(str name, str path)

Функция UnpackTarGz распаковывает .tar.gz архив с именем name в директорию path.
UnpackTarGz("/home/user/out/my.tar.gz", `/home/user/olddocs`)

UnpackTarGz(str name, str path, arr pattern, arr ignore)

Функция UnpackTarGz выборочно распаковывает .tar.gz архив с именем name в директорию path. Массив pattern содержит шаблоны файлов, которые необходимо распаковать. Массив ignore содержит шаблоны файлов, которые необходимо пропустить. Параметры pattern и ignore могу быть пустыми массивами. Если шаблон начинается и заканчивается символом /, то он обрабатывается как регулярное выражение.
arr empty
arr doc = {`*.docx`, `/.txt$/`}
UnpackTarGz("/home/user/out/my.tar.gz", `/home/user/tmp`, doc, empty )

UnpackZip(str name, str path)

Функция UnpackZip распаковывает .zip архив с именем name в директорию path.
UnpackZip("/home/user/out/my.zip", `/home/user/olddocs`)

UnpackZip(str name, str path, arr pattern, arr ignore)

Функция UnpackZip выборочно распаковывает .zip архив с именем name в директорию path. Массив pattern содержит шаблоны файлов, которые необходимо распаковать. Массив ignore содержит шаблоны файлов, которые необходимо пропустить. Параметры pattern и ignore могу быть пустыми массивами. Если шаблон начинается и заканчивается символом /, то он обрабатывается как регулярное выражение.
arr empty
arr skip = {`/temp.pdf/`, `/.txt$/`}
UnpackZip("/home/user/out/my.tar.gz", `/home/user/tmp`, empty, skip )

Zip(str name, str path)

Функция Zip упаковывает файл или содержимое директории path в .zip архив с именем name.
Zip("/home/user/out/mydoc.zip", `/home/user/docs/important.docx`)
Copy link
Outline
Функции
ArchiveName(finfo fi, str root) str
CloseTarGz(handle h)
CloseZip(handle h)
CreateTarGz(str name) handle
CreateZip(str name) handle
CompressFile(handle h, str fname, str packname)
ReadTarGz(str name) arr.finfo
ReadZip(str name) arr.finfo
TarGz(str name, str path)
UnpackTarGz(str name, str path)
UnpackTarGz(str name, str path, arr pattern, arr ignore)
UnpackZip(str name, str path)
UnpackZip(str name, str path, arr pattern, arr ignore)
Zip(str name, str path)