Blackhome

FileManager

Jan 26th, 2026 (edited)
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.65 KB | Gaming | 0 0
  1.     -- pastebin get 14xf463S FileManager
  2.  
  3.     FM = {}
  4.  
  5.     function FM.getDiskByLabel(label)
  6.         for _, side in ipairs(peripheral.getNames()) do
  7.             if peripheral.getType(side) == "drive" then
  8.                 local disk = peripheral.wrap(side)
  9.                 if disk.getDiskLabel() == label then
  10.                     return disk, disk.getMountPath()
  11.                 elseif disk.getDiskLabel() == nil and label == "Floppy Disk" then
  12.                     return disk, disk.getMountPath()
  13.                 end
  14.             end
  15.         end
  16.         return nil, nil
  17.     end
  18.  
  19.     function FM.resetAllDisks()
  20.         for _, side in ipairs(peripheral.getNames()) do
  21.             if peripheral.getType(side) == "drive" then
  22.                 local disk = peripheral.wrap(side)
  23.                 local path = disk.getMountPath() .. "/"
  24.                 shell.run("delete " .. path .. "*")
  25.                 disk.setDiskLabel()
  26.             end
  27.         end
  28.     end
  29.  
  30.     function FM.getTableSize(dataTable)
  31.         return math.max(512, #textutils.serialize(dataTable, {compact = true}))
  32.     end
  33.  
  34.     function FM.combineTables(t1, t2)
  35.         for _, val in ipairs(t2) do
  36.             table.insert(t1, val)
  37.         end
  38.         return t1
  39.     end
  40.  
  41.     function FM.loadFile(filePath)
  42.         if not fs.exists(filePath) then return nil end
  43.         local file = fs.open(filePath, "r")
  44.         data = file.readAll()
  45.         file.close()
  46.         return data
  47.     end
  48.  
  49.     function FM.saveFile(data, filePath)
  50.         local file = fs.open(filePath, "w")
  51.         file.write(data)
  52.         file.close()
  53.     end
  54.  
  55.     function FM.saveTable(dataTable, filePath, extracted)
  56.         local file = fs.open(filePath, "w")
  57.         if not extracted then
  58.             file.write(textutils.serialize(dataTable, {compact = true}))
  59.         else
  60.             file.write(textutils.serialize(dataTable))
  61.         end
  62.         file.close()
  63.     end
  64.  
  65.     function FM.loadTable(filePath)
  66.         if not fs.exists(filePath) then return {} end
  67.         local file = fs.open(filePath, "r")
  68.         local dataTable = textutils.unserialize(file.readAll())
  69.         file.close()
  70.         if dataTable == nil then return {} end
  71.  
  72.         return dataTable
  73.     end
  74.  
  75.     function FM.getEmptyDiskAmount()
  76.         local cnt = 0
  77.         for _, side in ipairs(peripheral.getNames()) do
  78.             if peripheral.getType(side) == "drive" then
  79.                 local disk = peripheral.wrap(side)
  80.                 if disk.getDiskLabel() == nil or label == "Floppy Disk" then
  81.                     cnt = cnt + 1
  82.                 end
  83.             end
  84.         end
  85.         return cnt
  86.     end
  87.  
  88.     return FM
Advertisement
Add Comment
Please, Sign In to add comment