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§
- Filesystem
- A structure that contains the filesystem state and cache.
- Open
Options - Options for opening files
Enums§
- File
- Represents a file, either in the filesystem, or in the resources zip file, or whatever.
Functions§
- create
Deprecated - Creates a new file in the user directory and opens it to be written to, truncating it if it already exists.
- create_
dir Deprecated - Create an empty directory in the user dir with the given name. Any parents to that directory that do not exist will be created.
- delete
Deprecated - Deletes the specified file in the user dir.
- delete_
dir Deprecated - Deletes the specified directory in the user dir, and all its contents!
- exists
Deprecated - Check whether a file or directory exists.
- is_dir
Deprecated - Check whether a path points at a directory.
- is_file
Deprecated - Check whether a path points at a file.
- log_all
Deprecated - Outputs the contents of all data directories,
using the “info” log level of the
log
crate. Useful for debugging. - mount
Deprecated - Adds the given (absolute) path to the list of directories it will search to look for resources.
- open
Deprecated - Opens the given path and returns the resulting
File
in read-only mode. - open_
options Deprecated - Opens a file in the user directory with the given
filesystem::OpenOptions
. Note that even if you open a file read-only, it can only access files in the user directory. - print_
all Deprecated - Prints the contents of all data directories. Useful for debugging.
- read_
config Deprecated - Looks for a file named
/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. - read_
dir Deprecated - Returns a list of all files and directories in the resource directory, in no particular order.
- resources_
dir Deprecated - Returns the full path to the resource directory (even if it doesn’t exist)
- user_
config_ dir Deprecated - Return the full path to the user config directory.
- user_
data_ dir Deprecated - Return the full path to the user data directory.
- write_
config Deprecated - Takes a
Conf
object and saves it to the user directory, overwriting any file already there. - zip_dir
Deprecated - Return the full path to the user data directory