Module filesystem
Available on crate feature
dep_sdl3
only.Expand description
SDL offers an API for examining and manipulating the system’s filesystem. This covers most things one would need to do with directories, except for actual file I/O (which is covered by CategoryIOStream and CategoryAsyncIO instead).
There are functions to answer necessary path questions:
- Where is my app’s data?
SDL_GetBasePath()
. - Where can I safely write files?
SDL_GetPrefPath()
. - Where are paths like Downloads, Desktop, Music?
SDL_GetUserFolder()
. - What is this thing at this location?
SDL_GetPathInfo()
. - What items live in this folder?
SDL_EnumerateDirectory()
. - What items live in this folder by wildcard?
SDL_GlobDirectory()
. - What is my current working directory?
SDL_GetCurrentDirectory()
.
SDL also offers functions to manipulate the directory tree: renaming, removing, copying files.
Structs§
- SDL_
Enumeration Result - Possible results from an enumeration callback.
- SDL_
Folder - The type of the OS-provided default folder for a specific purpose.
- SDL_
Path Info - Information about a path on the filesystem.
- SDL_
Path Type - Types of filesystem entries.
Constants§
- SDL_
ENUM_ CONTINUE - Value that requests that enumeration continue.
- SDL_
ENUM_ FAILURE - Value that requests that enumeration stop, as a failure.
- SDL_
ENUM_ SUCCESS - Value that requests that enumeration stop, successfully.
- SDL_
FOLDER_ COUNT - Total number of types in this enum, not a folder type by itself.
- SDL_
FOLDER_ DESKTOP - The folder of files that are displayed on the desktop. Note that the existence of a desktop folder does not guarantee that the system does show icons on its desktop; certain GNU/Linux distros with a graphical environment may not have desktop icons.
- SDL_
FOLDER_ DOCUMENTS - User document files, possibly application-specific. This is a good place to save a user’s projects.
- SDL_
FOLDER_ DOWNLOADS - Standard folder for user files downloaded from the internet.
- SDL_
FOLDER_ HOME - The folder which contains all of the current user’s data, preferences, and documents. It usually contains most of the other folders. If a requested folder does not exist, the home folder can be considered a safe fallback to store a user’s documents.
- SDL_
FOLDER_ MUSIC - Music files that can be played using a standard music player (mp3, ogg…).
- SDL_
FOLDER_ PICTURES - Image files that can be displayed using a standard viewer (png, jpg…).
- SDL_
FOLDER_ PUBLICSHARE - Files that are meant to be shared with other users on the same computer.
- SDL_
FOLDER_ SAVEDGAMES - Save files for games.
- SDL_
FOLDER_ SCREENSHOTS - Application screenshots.
- SDL_
FOLDER_ TEMPLATES - Template files to be used when the user requests the desktop environment to create a new file in a certain folder, such as “New Text File.txt”. Any file in the Templates folder can be used as a starting point for a new file.
- SDL_
FOLDER_ VIDEOS - Video files that can be played using a standard video player (mp4, webm…).
- SDL_
GLOB_ CASEINSENSITIVE - SDL_
PATHTYPE_ DIRECTORY - a directory
- SDL_
PATHTYPE_ FILE - a normal file
- SDL_
PATHTYPE_ NONE - path does not exist
- SDL_
PATHTYPE_ OTHER - something completely different like a device node (not a symlink, those are always followed)
Functions§
- SDL_
Copy ⚠File - Copy a file.
- SDL_
Create ⚠Directory - Create a directory, and any missing parent directories.
- SDL_
Enumerate ⚠Directory - Enumerate a directory through a callback function.
- SDL_
GetBase ⚠Path - Get the directory where the application was run from.
- SDL_
GetCurrent ⚠Directory - Get what the system believes is the “current working directory.”
- SDL_
GetPath ⚠Info - Get information about a filesystem path.
- SDL_
GetPref ⚠Path - Get the user-and-app-specific path where files can be written.
- SDL_
GetUser ⚠Folder - Finds the most suitable user folder for a specific purpose.
- SDL_
Glob ⚠Directory - Enumerate a directory tree, filtered by pattern, and return a list.
- SDL_
Remove ⚠Path - Remove a file or an empty directory.
- SDL_
Rename ⚠Path - Rename a file or directory.
Type Aliases§
- SDL_
Enumerate Directory Callback - Callback for directory enumeration.
- SDL_
Glob Flags - Flags for path matching.