Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function compress(dir, zip)
- if fs.isDir(dir) then
- local filelist = fs.list(dir)
- local archive = {
- files = {
- },
- filedata = {
- },
- archive = "true"
- }
- for i=1, #filelist do
- if fs.isDir(dir.."/"..filelist[i]) == false then
- local filehandle = fs.open(dir.."/"..filelist[i], "r")
- table.insert(archive.files, filelist[i])
- archive.filedata[filelist[i]] = filehandle.readAll()
- filehandle.close()
- end
- end
- local fArchive = fs.open(zip..".cmp", "w")
- fArchive.write(textutils.serialize(archive))
- fArchive.close()
- return true
- else
- return false
- end
- end
- function decompress(archive, dir)
- if isArchive(archive) then
- local zipfile = fs.open(archive, "r")
- local zip = textutils.unserialize(zipfile.readAll())
- zipfile.close()
- fs.makeDir(dir)
- for i=1, #zip.files do
- local file = fs.open(dir.."/"..zip.files[i], "w")
- file.write(zip.filedata[zip.files[i]])
- file.close()
- end
- return true
- else
- return false
- end
- end
- function isArchive(path)
- local fshandle = fs.open(path, "r")
- local table2 = textutils.unserialize(fshandle.readAll())
- fshandle.close()
- if table2.archive == "true" then
- return true
- else
- return false
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement