FileCreate: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (indexing translated page)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server function}}
{{Server client function}}


Creates a new file in a directory of a resource. If there already exists a file with the specified name, it is overwritten with an empty file.
Creates a new file in a directory of a resource. If there already exists a file with the specified name, it is overwritten with an empty file.
 
{{Note|To prevent memory leaks, ensure each successful call to [[fileCreate]] has a matching call to [[fileClose]]}}
'''Note:''' The file functions should not be used to implement configuration files. It is encouraged to use the XML functions for this instead.
{{Note|The file functions should not be used to implement configuration files. It is encouraged to use the XML functions for this instead.}}
 
{{Tip|If you do not want to share the content of the created file with other servers, prepend the file path with @ (See [[filepath]] for more information)}}
==Syntax==
==Syntax==
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">file fileCreate ( string filePath )</syntaxhighlight>
file fileCreate ( string filePath )
 
</syntaxhighlight>
===Required Arguments===
{{OOP|This function is a static function underneath the File class.|[[File]].new}}
*'''filePath:''' The [[filepath]] of the file to be created in the following format: '''":resourceName/path"'''. 'resourceName' is the name of the resource the file is in, and 'path' is the path from the root directory of the resource to the file.
:For example, if you want to create a file named 'myfile.txt' in the resource 'mapcreator', it can be created from another resource this way: ''fileCreate(":mapcreator/myfile.txt")''.
:If the file is in the current resource, only the file path is necessary, e.g. ''fileCreate("myfile.txt")''.
 
</section>


 
{{New feature/item|9.0156|1.5.6|11865|
{{New feature|3.0110|1.1|
{{OOP|This is a static function underneath the File class. Using '''File(...)''' to open a file will attempt to create the file, if it doesn't exist|[[File]].new}}
<section name="Client" class="client" show="true">
}}
<syntaxhighlight lang="lua">file fileCreate ( string filePath [, string accessType = "public" ] )</syntaxhighlight>


===Required Arguments===
===Required Arguments===
Line 26: Line 20:
:For example, if you want to create a file named 'myfile.txt' in the resource 'mapcreator', it can be created from another resource this way: ''fileCreate(":mapcreator/myfile.txt")''.
:For example, if you want to create a file named 'myfile.txt' in the resource 'mapcreator', it can be created from another resource this way: ''fileCreate(":mapcreator/myfile.txt")''.
:If the file is in the current resource, only the file path is necessary, e.g. ''fileCreate("myfile.txt")''.
:If the file is in the current resource, only the file path is necessary, e.g. ''fileCreate("myfile.txt")''.
===Optional Arguments===
*'''accessType :''' This setting determines whether to create a public or private version of the file at '''filePath'''.
** "public" will create a file that is shared by all servers.
** "private" will create a file that only the current server is allowed to access.
</section>
}}


===Returns===
===Returns===
Line 50: Line 37:


It is also important to remember to close a file after you've finished all your operations on it, especially if you've been writing to the file. If you don't close a file and your resource crashes, all changes to the file may be lost.
It is also important to remember to close a file after you've finished all your operations on it, especially if you've been writing to the file. If you don't close a file and your resource crashes, all changes to the file may be lost.
If the file already exists, a new file will be created on local.


==See Also==
==See Also==
{{File functions}}
{{File functions}}
[[pt-br:fileCreate]]

Latest revision as of 17:15, 20 December 2023

Creates a new file in a directory of a resource. If there already exists a file with the specified name, it is overwritten with an empty file.

[[{{{image}}}|link=|]] Note: To prevent memory leaks, ensure each successful call to fileCreate has a matching call to fileClose
[[{{{image}}}|link=|]] Note: The file functions should not be used to implement configuration files. It is encouraged to use the XML functions for this instead.
[[{{{image}}}|link=|]] Tip: If you do not want to share the content of the created file with other servers, prepend the file path with @ (See filepath for more information)

Syntax

file fileCreate ( string filePath )

OOP Syntax Help! I don't understand this!

Note: This function is a static function underneath the File class.
Method: File.new(...)


ADDED/UPDATED IN VERSION 1.5.6 r11865:

OOP Syntax Help! I don't understand this!

Note: This is a static function underneath the File class. Using File(...) to open a file will attempt to create the file, if it doesn't exist
Method: File.new(...)


Required Arguments

  • filePath: The filepath of the file to be created in the following format: ":resourceName/path". 'resourceName' is the name of the resource the file is in, and 'path' is the path from the root directory of the resource to the file.
For example, if you want to create a file named 'myfile.txt' in the resource 'mapcreator', it can be created from another resource this way: fileCreate(":mapcreator/myfile.txt").
If the file is in the current resource, only the file path is necessary, e.g. fileCreate("myfile.txt").

Returns

If successful, returns a file handle which can be used with other file functions (fileWrite, fileClose...). Returns false if an error occured.

Example

This example creates a text file in the current resource and writes a string to it.

local newFile = fileCreate("test.txt")                -- attempt to create a new file
if (newFile) then                                       -- check if the creation succeeded
    fileWrite(newFile, "This is a test file!")        -- write a text line
    fileClose(newFile)                                -- close the file once you're done with it
end

Notice that you can't simply do fileWrite("test.txt", "File content"). Instead, file functions operate on a file handle, which is a special object representing an open file. fileCreate creates a file, opens it, and returns the resulting handle.

It is also important to remember to close a file after you've finished all your operations on it, especially if you've been writing to the file. If you don't close a file and your resource crashes, all changes to the file may be lost. If the file already exists, a new file will be created on local.

See Also