Skip to main content

File

A File represents an entry to a system file.

💂Authority
This class can be spawned on both 🟧 Client and 🟦 Server side (if you spawn it on client, it won't be synchronized with other players).

info

It is not possible to open files from outside the server folder. All path must be relative to the Server's executable folder. All files are opened as binary file by default.

Examples

local configuration_file = File("my_awesome_configuration.json")

local configuration_file_json = JSON.parse(configuration_file:Read(configuration_file:Size()))

Constructors

Default Constructor

local my_file = File(file_path, truncate?)
TypeNameDefaultDescription
stringfile_pathIf on Server, this is the Path relative to server executable. Otherwise if on Client, this is the Path relative to Client's 'Packages/.transient/' folder
booleantruncatefalseWhether or not to clear the file upon opening it

Static Functions

ReturnsNameDescription
integerTimeReturns when a file was last modified in Unix time
booleanCreateDirectoryCreates a Directory (for every folder passed)
integerRemoveDeletes a folder or file
booleanExistsVerifies if a entry exists in the file system
booleanIsDirectoryChecks if a path is a directory
booleanIsRegularFileChecks if a path is a file

Time

Returns when a file was last modified in Unix time

— Returns integer (the last update time in unix time).

local ret = File.Time(path)
TypeParameterDefaultDescription
stringpathPath to file

CreateDirectory

Creates a Directory (for every folder passed)

— Returns boolean (if succeeded).

local ret = File.CreateDirectory(path)
TypeParameterDefaultDescription
stringpathPath to folder

Remove

Deletes a folder or file

— Returns integer (amount of files deleted).

local ret = File.Remove(path)
TypeParameterDefaultDescription
stringpathPath to file or folder

Exists

Verifies if a entry exists in the file system

— Returns boolean (if exists).

local ret = File.Exists(path)
TypeParameterDefaultDescription
stringpathPath to file or folder

IsDirectory

Checks if a path is a directory

— Returns boolean (if is a directory).

local ret = File.IsDirectory(path)
TypeParameterDefaultDescription
stringpathPath to folder

IsRegularFile

Checks if a path is a file

— Returns boolean (if is a regular file).

local ret = File.IsRegularFile(path)
TypeParameterDefaultDescription
stringpathPath to file

Functions

ReturnsNameDescription
CloseCloses the file and destroys the entity
FlushFlushes content to the file
booleanIsEOFChecks if the file status is End of File
booleanIsBadChecks if the file status is Bad
booleanIsGoodChecks if the file status is Good
booleanHasFailedChecks if the last operation has Failed
stringReadReads characters from the File and returns it. Also moves the file pointer to the latest read position. Pass 0 to read the whole file
ReadAsyncReads characters from the File asynchronously.
stringReadLineReads and returns the next file line
tableReadJSONReads the whole file as a JSON and returns it.
ReadJSONAsyncReads the whole file as a JSON and returns it asynchronously.
SeekSets the file pointer to a specific position
integerSizeReturns the size of the file
SkipSkips n (amount) positions from the current file pointer position
integerTellReturns the current file pointer position
WriteWrites the Data at the current position of the file

Close

Closes the file and destroys the entity

my_file:Close()

Flush

Flushes content to the file

my_file:Flush()

IsEOF

Checks if the file status is End of File

— Returns boolean (if is EOF).

local ret = my_file:IsEOF()

IsBad

Checks if the file status is Bad

— Returns boolean (if status is Bad).

local ret = my_file:IsBad()

IsGood

Checks if the file status is Good

— Returns boolean (if status is Good).

local ret = my_file:IsGood()

HasFailed

Checks if the last operation has Failed

— Returns boolean (if last operation failed).

local ret = my_file:HasFailed()

Read

Reads characters from the File and returns it. Also moves the file pointer to the latest read position. Pass 0 to read the whole file

— Returns string (file data).

local ret = my_file:Read(length?)
TypeParameterDefaultDescription
integerlength?0Length to be read from file

ReadAsync

Reads characters from the File asynchronously.

my_file:ReadAsync(length, callback)
TypeParameterDefaultDescription
integerlengthLength to be read from file
functioncallbackCallback with this format

ReadLine

Reads and returns the next file line

— Returns string (file line data).

local ret = my_file:ReadLine()

ReadJSON

Reads the whole file as a JSON and returns it.

— Returns table (parsed table).

local ret = my_file:ReadJSON()

ReadJSONAsync

Reads the whole file as a JSON and returns it asynchronously.

my_file:ReadJSONAsync(callback)
TypeParameterDefaultDescription
functioncallbackCallback with the file read with this format

Seek

Sets the file pointer to a specific position

my_file:Seek(position)
TypeParameterDefaultDescription
integerpositionPosition to offset the file pointer

Size

Returns the size of the file

— Returns integer (file size).

local ret = my_file:Size()

Skip

Skips n (amount) positions from the current file pointer position

my_file:Skip(amount)
TypeParameterDefaultDescription
integeramountAmount to offset the file pointer

Tell

Returns the current file pointer position

— Returns integer (current file pointer position).

local ret = my_file:Tell()

Write

Writes the Data at the current position of the file

my_file:Write(data)
TypeParameterDefaultDescription
stringdataData to write to the file

Events

This entity doesn't have own events.