# 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. <!-- END CATEGORY DOCUMENTATION --> ## Functions <!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. --> <!-- BEGIN CATEGORY LIST: CategoryFilesystem, CategoryAPIFunction --> - [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) <!-- END CATEGORY LIST --> ## Datatypes <!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. --> <!-- BEGIN CATEGORY LIST: CategoryFilesystem, CategoryAPIDatatype --> - [SDL_EnumerateDirectoryCallback](SDL_EnumerateDirectoryCallback) - [SDL_GlobFlags](SDL_GlobFlags) <!-- END CATEGORY LIST --> ## Structs <!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. --> <!-- BEGIN CATEGORY LIST: CategoryFilesystem, CategoryAPIStruct --> - [SDL_PathInfo](SDL_PathInfo) <!-- END CATEGORY LIST --> ## Enums <!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. --> <!-- BEGIN CATEGORY LIST: CategoryFilesystem, CategoryAPIEnum --> - [SDL_EnumerationResult](SDL_EnumerationResult) - [SDL_Folder](SDL_Folder) - [SDL_PathType](SDL_PathType) <!-- END CATEGORY LIST --> ## Macros <!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. --> <!-- BEGIN CATEGORY LIST: CategoryFilesystem, CategoryAPIMacro --> - (none.) <!-- END CATEGORY LIST --> ---- [CategoryAPICategory](CategoryAPICategory)