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