Привет!
Недавно мне потребовалось небольшое взаимодействие с ZIP-архивами, и я наткнулся на простенькую библиотеку на GitHub zzlib (https://github.com/zerkman/zzlib), которая подходит почти под все мои требования 🥸 [чтение & распаковка]
Для своего удобства я немного изменил либу, добавив следующие функции(измененную версию с примерами прикреплю сюда):
Недавно мне потребовалось небольшое взаимодействие с ZIP-архивами, и я наткнулся на простенькую библиотеку на GitHub zzlib (https://github.com/zerkman/zzlib), которая подходит почти под все мои требования 🥸 [чтение & распаковка]
Для своего удобства я немного изменил либу, добавив следующие функции(измененную версию с примерами прикреплю сюда):
Lua:
function zzlib.is_file_does_exists(path_inside_archive, zip_entries) -- существует ли файл в архиве
function zzlib.is_dir_does_exists(path_inside_archive, zip_entries) -- существует ли папка в архиве
function zzlib.print_zip_entries(zip_entries) -- вывод в консоль всех файлов из архива
function zzlib.unzip_entry(path_to_archive, path_to_entry, output_path) -- распаковка конкретного файла по названию
function zzlib.unzip_full_archive_files(path_to_archive, output_path) -- распаковка всех файлов из архива
Lua:
local zzlib = require("zzlib")
local paths = {
archive = getWorkingDirectory() .. "\\zip_example\\input\\archive.zip",
output = getWorkingDirectory() .. "\\zip_example\\output\\archive\\"
}
local zip_entries = zzlib.get_zip_entries(paths.archive) -- получаем entries с архива
zzlib.print_zip_entries(zip_entries) -- выводим все содержимое архива
-- проверки на существование
if zzlib.is_dir_does_exists("my_folder\\my_folder2", zip_entries) then
print("Папка существует в архиве.")
else
print("Папка не найдена в архиве.")
end
if zzlib.is_file_does_exists("my_folder\\my_folder2\\script2.lua", zip_entries) then
print("Файл существует в архиве.")
zzlib.unzip_entry(paths.archive, "my_folder\\my_folder2\\script2.lua", paths.output .. "my_folder\\my_folder2")
else
print("Файл не найден в архиве.")
end
-- распаковываем весь архив
if zzlib.unzip_full_archive_files(paths.archive, paths.output) then
print("Архив распакован")
end
Вложения
Последнее редактирование: