zipНачиная с 1.5.0
Содержит функции для работы с zip архивами
Функции
zip(inputPath, outputFile, mapper = def(entryPath) = entryPath)
— создаёт zip архив с содержимым inputPath
и сохраняет в outputFile
.mapper
используется для задания имени конечного файла внутри архива, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен.
Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось.
use zip
// Архивировать все файлы в директории
zip("/tmp/dir", "/tmp/1.zip")
// Архивировать .txt файлы
zip("/tmp/dir", "/tmp/2.zip", def(p) = p.endsWith(".txt") ? p : "")
zipFiles(input, outputFile)
— создаёт zip архив с содержимым input
и сохраняет в outputFile
.
Если input
— строка, то архивируется один файл или содержимое папки.
Если input
— массив, то архивируются файлы и папки, перечисленные в нём.
Если input
— ассоциативный массив, то архивируются файлы и папки перечисленные в ключах, а именами внутри архива будут служить значения.
Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось.
use zip
zipFiles("/tmp/dir/file.txt", "/tmp/1.zip")
zipFiles(["/tmp/dir/file.txt", "/tmp/dir/readme.md"], "/tmp/2.zip")
zipFiles({"/tmp/dir/file.txt" : "docs/1.md", "/tmp/dir/readme.md" : "docs/2.md"}, "/tmp/3.zip")
unzip(input, output, mapper = def(entryName) = entryPath)
— распаковывает zip архив input
в папку output
.mapper
используется для задания имени конечного файла, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен.
Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось.
use zip
// Распаковать все файлы в директории
unzip("/tmp/1.zip", "/tmp/dir")
// Распаковать .txt файлы
unzip("/tmp/2.zip", "/tmp/dir", def(p) = p.endsWith(".txt") ? p : "")
unzipFiles(input, output)
— распаковывает output
файлы из zip архива.
Если output
— строка, то разархивируется один файл.
Если output
— массив, то разархивируются файлы, перечисленные в нём.
Если output
— ассоциативный массив, то разархивируются файлы перечисленные в ключах, а именами файлов будут служить значения.
Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось.
use zip
unzipFiles("/tmp/1.zip", "file.txt")
unzipFiles("/tmp/2.zip", ["file.txt", "readme.md"])
unzipFiles("/tmp/3.zip", {"docs/1.md" : "/tmp/dir/file.txt", "docs/2.md" : "/tmp/dir/readme.md"})
listZipEntries(input)
— возвращает массив с именами файлов zip архива