Module ggez::filesystem
source · Expand description
A cross-platform interface to the filesystem.
This module provides access to files in specific places:
- The
resources/
subdirectory in the same directory as the program executable, if any, - The
resources.zip
file in the same directory as the program executable, if any, - The root folder of the game’s “save” directory which is in a
platform-dependent location,
such as
~/.local/share/<gameid>/
on Linux. Thegameid
is the the string passed toContextBuilder::new()
. Some platforms such as Windows also incorporate theauthor
string into the path.
These locations will be searched for files in the order listed, and the first file
found used. That allows game assets to be easily distributed as an archive
file, but locally overridden for testing or modding simply by putting
altered copies of them in the game’s resources/
directory. It
is loosely based off of the PhysicsFS
library.
See the source of the files
example for more details.
The names of resources/
and resources.zip
can be changed with the methods
resources_dir_name
and
resources_zip_name
of ContextBuilder
.
Note that the file lookups WILL follow symlinks! This module’s directory isolation is intended for convenience, not security, so don’t assume it will be secure.
Structs
Enums
Functions
log
crate.
Useful for debugging.File
in read-only mode.filesystem::OpenOptions
.
Note that even if you open a file read-only, it can only access
files in the user directory./conf.toml
in any resource directory and
loads it if it finds it.
If it can’t read it for some reason, returns an error.Conf
object and saves it to the user directory,
overwriting any file already there.