Revision Difference
file.Open#514967
<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>⤶
</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>