-
Notifications
You must be signed in to change notification settings - Fork 187
Filesystem API
This library allows developer to interact with filesystem components, to mount them on virtual directories, to perform buffered I/O operations and to process string paths for extraction of their parts.
Want to read whole file contents with one line of code? Or, for example, to save table as serialized string on external HDD? No problem: library has some really convenient stuff for file manipulations.
Reads whole file as string. Returns string
data if reading operation was successful, nil
and reason
message otherwise:
Test.txt:
--------------------------------------------
Hello world
filesystem.read("/Test.txt")
> Hello world
Overwrites passed data to file. Data can has a string
, number
or boolean
type. Returns true
if writing operation was successful, false
and reason
message otherwise.
filesystem.write("/Test.txt", "Meow, ", "I love", "you")
Test.txt:
--------------------------------------------
Meow, I love you
Works the same way as filesystem.write(), but appends passed data to end of file without overwriting.
Reads string lines from file and packs them to table. Returns table
of strings if reading operation was successful, nil
and reason
message otherwise.
Test.txt:
--------------------------------------------
Help
They're
Everywhere
filesystem.readLines("/Test.txt")
> {
"Help",
"They're"
"Everywhere"
}
Reads whole file and deserializes it as table. Returns table
if reading operation was successful, nil
and reason
message otherwise.
Test.txt:
--------------------------------------------
{"Ur mom gay", "No u"}
filesystem.readTable("/Test.txt")
> {
"Ur mom gay",
"No u"
}
Serializes given table as string and writes it to file. Multiple arguments are passed to text.serialize method. Returns true
if serializing and writing operation was successful, false
and reason
message otherwise.
filesystem.writeTable("/Test.txt", {
"Primitive creature",
"Wonderful being"
})
Test.txt:
--------------------------------------------
{"Primitive creature","Wonderful being"}
Need to extract file name or extension from path? Or need to remove extra slashes? These methods are for you:
Returns file name from given path:
filesystem.name("/MineOS/Pictures/Dick.pic")
> Dick.pic
Returns parent path from given path:
filesystem.path("/MineOS/Pictures/Dick.pic")
> /MineOS/Pictures/
Returns extension from given path:
filesystem.extension("/MineOS/Pictures/Dick.pic")
> .pic
Returns given path without it's extension:
filesystem.hideExtension("/MineOS/Pictures/Dick.pic")
> /MineOS/Pictures/Dick
Hidden files are files which names starts of dot symbol. This method returns true
if file is hidden or false
otherwise:
filesystem.isHidden("/MineOS/Pictures/Dick.pic")
filesystem.isHidden("/MineOS/Pictures/.Very big.pic")
> false
> true
Removes extra repeating slashes of path:
filesystem.removeSlashes("/MineOS///Pictures//Dick.pic")
> /MineOS/Pictures/Dick.pic
Want to copy file from one filesystem component to another? Mounts system was designed for that: when you add any filesystem component to computer, it's being "mounted" to virtual path.
Returns an iterator function for listing of mounted filesystems:
for proxy, path in filesystem.mounts() do
-- Do something
end
Mounts passed filesystem component proxy table
to specified path.
Unmounts passed filesystem component proxy table
or it's string
address from mounted path.
Determines correct filesystem component proxy from given path and returns it with rest path part:
filesystem.get("/MineOS/Mounts/478ABF/Test.pic")
> table, "Test.pic"
If you need to read write single byte to file, N bytes from file, to write a sing