Enumerate a directory in a storage container through a callback function.
Defined in <SDL3/SDL_storage.h>
bool SDL_EnumerateStorageDirectory(SDL_Storage *storage, const char *path, SDL_EnumerateDirectoryCallback callback, void *userdata);
SDL_Storage * | storage | a storage container. |
const char * | path | the path of the directory to enumerate. |
SDL_EnumerateDirectoryCallback | callback | a function that is called for each entry in the directory. |
void * | userdata | a pointer that is passed to callback . |
(bool) Returns true on success or false on failure; call SDL_GetError() for more information.
This function provides every directory entry through an app-provided callback, called once for each directory entry, until all results have been provided or the callback returns either SDL_ENUM_SUCCESS or SDL_ENUM_FAILURE.
This will return false if there was a system problem in general, or if a callback returns SDL_ENUM_FAILURE. A successful return means a callback returned SDL_ENUM_SUCCESS to halt enumeration, or all directory entries were enumerated.
This function is available since SDL 3.1.3.
// Example program
// Use SDL3 to enumerate all directories in title storage
#include <SDL3/SDL_log.h>
#include <SDL3/SDL_main.h>
#include <SDL3/SDL_storage.h>
SDL_EnumerationResultvoid *userdata, const char* dirname, const char* fname)
my_enumerate_dir_callback(
{"dirname: %s | fname: %s", dirname, fname);
SDL_Log(return SDL_ENUM_CONTINUE;
}
int
int argc, char** argv)
main(
{"", 0);
SDL_Storage *storage = SDL_OpenTitleStorage(if(storage == NULL) {
"Unable to open storage %s", SDL_GetError());
SDL_Log(
}
if(!SDL_EnumerateStorageDirectory(storage, ".", my_enumerate_dir_callback, NULL)) {
"There was a system problem or the callback indicated failure.");
SDL_Log(else {
} "All directories enumerated or the callback halted enumeration.");
SDL_Log(
}
return 0;
}