Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- created by var/openpli.
- type directory = {
- _name: string,
- _maxSize: number,
- _currentSize: number,
- _files: {}
- }
- type file = {
- _name: string,
- _size: number,
- _directory: string
- }
- local Dirs = {} -- holds the directories
- local Directory = {} -- holds the functions
- function Directory.mkdir(name: string, size: number)
- if not name then name = "New Folder" return end
- if not size then return end
- local newDirectory: directory = {
- _name = name, -- name of the directory
- _maxSize = size, -- max size in bytes, once max size is equal to size, then files cannot be added anymore
- _currentSize = 0, -- current size of the whole directory (0 bytes is default size)
- _files = {} -- files within the directory
- }
- local sameDirIndex = 0
- for _, dir in Dirs do
- local _name = dir._name
- if _name == newDirectory._name then
- sameDirIndex += 1
- newDirectory._name = `{newDirectory._name} ({sameDirIndex})`
- table.insert(Dirs, newDirectory)
- end
- end
- print(`Directory {newDirectory._name} has been created`)
- end
- function Directory.mk(name: string, size: number, directory: string)
- local newFile: file = {
- _name = name, -- name of the file
- _size = size, -- size of the file in bytes
- }
- for _, dir in Dirs do
- local _name = dir._name
- local _currentSize = dir._currentSize
- local _maxSize = dir._maxSize
- if _name == directory then
- if string.find(_name, "FULL") then
- warn(`Directory {_name} is full!`)
- else
- newFile._directory = directory
- table.insert(dir._files, newFile)
- dir._currentSize += newFile._size
- end
- end
- local sameFileIndex = 0
- for _, checkedFile: file in dir._files do
- if checkedFile._name == newFile._name then
- sameFileIndex += 1
- newFile._name = `{newFile._name} ({sameFileIndex})`
- end
- end
- if _currentSize == _maxSize then
- _name = `{_name} (FULL)`
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement