[][src]Module gvfs::filesystem

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. The gameid is the the string passed to ContextBuilder::new(). Some platforms such as Windows also incorporate the author 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.

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.

Enums

File

Represents a file, either in the filesystem, or in the resources zip file, or whatever.