Revision Difference
file.Open#518407
<function name="Open" parent="file" type="libraryfunc">
<description>Attempts to open a file with the given mode.</description>
<realm>Shared and Menu</realm>
<args>
<arg name="fileName" type="string">The files name. See <page>file.Write</page> for details on filename restrictions when writing to files.</arg>
<arg name="fileMode" type="string">The mode to open the file in. Possible values are:
* **r** - read mode
* **w** - write mode
* **a** - append mode

* **rb** - binary read mode
* **wb** - binary write mode
* **ab** - binary append mode</arg>⤶
<arg name="path" type="string">The path type. See <page>File Search Paths</page>

Common paths are:
* "GAME" - Structured like base folder (garrysmod/), searches all the mounted content (main folder, addons, mounted games etc)
* "LUA" or "lsv" - All Lua folders (lua/) including gamesmodes and addons
* "DATA" - Local to Data folder, has write access (garrysmod/data)
* "MOD" - Strictly the game folder (garrysmod/), ignores mounting.</arg>⤶
<arg name="fileName" type="string">The files name. See <page>file.Write</page> for details on filename restrictions when writing to files.</arg>
<arg name="fileMode" type="string">The mode to open the file in. Possible values are:⤶
* **r** - read mode⤶
* **w** - write mode⤶
* **a** - append mode⤶
⤶
* **rb** - binary read mode⤶
* **wb** - binary write mode⤶
* **ab** - binary append mode</arg>⤶
<arg name="path" type="string">The path type. See <page>File Search Paths</page>⤶
⤶
Common paths are:⤶
* "GAME" - Structured like base folder (garrysmod/), searches all the mounted content (main folder, addons, mounted games etc)⤶
* "LUA" or "lsv" - All Lua folders (lua/) including gamesmodes and addons⤶
* "DATA" - Local to Data folder, has write access (garrysmod/data)⤶
* "MOD" - Strictly the game folder (garrysmod/), ignores mounting.</arg>⤶
</args>
<rets>
<ret name="" type="File">The opened file object, or nil if it failed to open due to it not existing or being used by another process.</ret>
</rets>
</function>
<example>
<description>Open a file in read only mode, reads a line, tells where the current file pointer is at and then closes the file handle.</description>
<code>
local f = file.Open( "cfg/mapcycle.txt", "r", "MOD" )
print( f:ReadLine() )
print( f:ReadLine() )
print( f:Tell() )
f:Close()
</code>
<outputfixedwidth>Fixed width</outputfixedwidth>
<output>
//
// Default mapcycle file for Garry's Mod.
45
</output>
</example>