Привет!
Недавно мне потребовалось небольшое взаимодействие с 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
	Вложения
			
				Последнее редактирование: