g305noobo

Известный
Автор темы
Модератор
307
477
Привет!
Недавно мне потребовалось небольшое взаимодействие с 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

575eec355067c1211fcb02ee86f31d59-ezgif.com-resize.gif
 

Вложения

  • zzlib modifed.7z
    5.7 KB · Просмотры: 22
Последнее редактирование:
D

deleted-user-532248

Гость
теперь буду запаковывать гей порно в зип с активацией по /zighi
 
  • Bug
Реакции: Anarch

g305noobo

Известный
Автор темы
Модератор
307
477
сделал мини обновление:
1. теперь распаковка всех файлов в архиве распаковывает еще и папки с файлами
2. добавил функции is_file_does_exists и is_dir_does_exists
3. исправил мелкие баги

подробнее есть выше, в примерах и описании

вроде как теперь все методы простые и использовать максимально удобно
 

четыреста четыре

Известный
120
20
сделал мини обновление:
1. теперь распаковка всех файлов в архиве распаковывает еще и папки с файлами
2. добавил функции is_file_does_exists и is_dir_does_exists
3. исправил мелкие баги

подробнее есть выше, в примерах и описании

вроде как теперь все методы простые и использовать максимально удобно
ещё бы библеотека могла распаковывать зипы с гита без ошибки - .ZIP file comments not supported было бы замечательно
 
  • Нравится
Реакции: gaymerbro11