diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-09-20 08:41:53 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-09-20 08:41:53 +0200 |
commit | 7bb1af84f68ea5f92423a4c5f79033f2a3547460 (patch) | |
tree | 4aa5cfb717da384784ca8e318ccd986f28e9e7a1 | |
parent | 7a4faba136d7e66d01a593c944c9381c2c26a0ae (diff) | |
parent | 95393c310dfbc4d9c6e60de1b0339fc16669b8cd (diff) |
Merge pull request #66122 from raulsntos/dotnet/FirAccess🌲-docs
Improve C# documentation for FileAccess and DirAccess
-rw-r--r-- | doc/classes/DirAccess.xml | 2 | ||||
-rw-r--r-- | doc/classes/FileAccess.xml | 16 |
2 files changed, 12 insertions, 6 deletions
diff --git a/doc/classes/DirAccess.xml b/doc/classes/DirAccess.xml index ddb98030eb..de2e32b17b 100644 --- a/doc/classes/DirAccess.xml +++ b/doc/classes/DirAccess.xml @@ -27,7 +27,7 @@ [csharp] public void DirContents(string path) { - var dir = DirAccess.Open(path); + using var dir = DirAccess.Open(path); if (dir != null) { dir.ListDirBegin(); diff --git a/doc/classes/FileAccess.xml b/doc/classes/FileAccess.xml index 61377fb13a..32f6a1dd3e 100644 --- a/doc/classes/FileAccess.xml +++ b/doc/classes/FileAccess.xml @@ -20,24 +20,30 @@ [csharp] public void Save(string content) { - var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Write); + using var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Write); file.StoreString(content); } public string Load() { - var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Read); + using var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Read); string content = file.GetAsText(); return content; } [/csharp] [/codeblocks] In the example above, the file will be saved in the user data folder as specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] documentation. - There is no method to close a file in order to free it from use. Instead, [FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. - [codeblock] + There is no method to close a file in order to free it from use. Instead, [FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. In C# the reference must be disposed after we are done using it, this can be done with the [code]using[/code] statement or calling the [code]Dispose[/code] method directly. + [codeblocks] + [gdscript] var file = FileAccess.open("res://something") # File is opened and locked for use. file = null # File is closed. - [/codeblock] + [/gdscript] + [csharp] + using var file = FileAccess.Open("res://something"); // File is opened and locked for use. + // The using statement calls Dispose when going out of scope. + [/csharp] + [/codeblocks] [b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [FileAccess] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package. [b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling [method flush] at regular intervals. </description> |