# CategoryFilesystem 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](CategoryIOStream) and [CategoryAsyncIO](CategoryAsyncIO) instead). There are functions to answer necessary path questions: - Where is my app's data? [SDL_GetBasePath](SDL_GetBasePath)(). - Where can I safely write files? [SDL_GetPrefPath](SDL_GetPrefPath)(). - Where are paths like Downloads, Desktop, Music? [SDL_GetUserFolder](SDL_GetUserFolder)(). - What is this thing at this location? [SDL_GetPathInfo](SDL_GetPathInfo)(). - What items live in this folder? [SDL_EnumerateDirectory](SDL_EnumerateDirectory)(). - What items live in this folder by wildcard? [SDL_GlobDirectory](SDL_GlobDirectory)(). - What is my current working directory? [SDL_GetCurrentDirectory](SDL_GetCurrentDirectory)(). SDL also offers functions to manipulate the directory tree: renaming, removing, copying files. ## Functions - [SDL_CopyFile](SDL_CopyFile) - [SDL_CreateDirectory](SDL_CreateDirectory) - [SDL_EnumerateDirectory](SDL_EnumerateDirectory) - [SDL_GetBasePath](SDL_GetBasePath) - [SDL_GetCurrentDirectory](SDL_GetCurrentDirectory) - [SDL_GetPathInfo](SDL_GetPathInfo) - [SDL_GetPrefPath](SDL_GetPrefPath) - [SDL_GetUserFolder](SDL_GetUserFolder) - [SDL_GlobDirectory](SDL_GlobDirectory) - [SDL_RemovePath](SDL_RemovePath) - [SDL_RenamePath](SDL_RenamePath) ## Datatypes - [SDL_EnumerateDirectoryCallback](SDL_EnumerateDirectoryCallback) - [SDL_GlobFlags](SDL_GlobFlags) ## Structs - [SDL_PathInfo](SDL_PathInfo) ## Enums - [SDL_EnumerationResult](SDL_EnumerationResult) - [SDL_Folder](SDL_Folder) - [SDL_PathType](SDL_PathType) ## Macros - (none.) ---- [CategoryAPICategory](CategoryAPICategory)