function archive(chto,vochto)
local Massiv2 = {}
local function FileList(path)
local Massiv = fs.list(path)
if #Massiv==0 then
local Massiv2Id = #Massiv2 + 1
Massiv2[Massiv2Id] = {}
Massiv2[Massiv2Id]["path"] = path
Massiv2[Massiv2Id]["text"] = "@empty@empty"
else
for i=1,#Massiv do
if fs.isDir(path.."/"..Massiv[i]) and Massiv[i] ~= "/rom" and Massiv[i] ~= "rom" then
FileList(path.."/"..Massiv[i])
elseif not fs.isDir(path.."/"..Massiv[i]) and Massiv[i] ~= "/rom" and Massiv[i] ~= "rom" then
local Massiv2Id = #Massiv2 + 1
Massiv2[Massiv2Id] = {}
Massiv2[Massiv2Id]["path"] = path.."/"..Massiv[i]
local file = fs.open(path.."/"..Massiv[i],"r")
Massiv2[Massiv2Id]["text"] = file.readAll()
file.close()
end
end
end
end
FileList(chto)
file=fs.open(vochto..".zip","w")
file.write(textutils.serialise(Massiv2))
file.close()
return Massiv2
end
function unarchive(chto,kuda)
local file = fs.open(chto,"r")
Massiv = textutils.unserialise(file.readAll())
file.close()
for i=1,#Massiv do
if Massiv[i]["text"] == "@empty@empty" then
fs.makeDir(kuda.."/"..Massiv[i]["path"])
else
local file = fs.open(kuda.."/"..Massiv[i]["path"],"w")
file.write(Massiv[i]["text"])
file.close()
end
end
end