# 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)