Looks like 'SD.rmdir()' in the built-in SD library removes the directory and all the files and directories it contains.
boolean SDClass::rmdir(const char *filepath) {
/*
Remove a single directory or a heirarchy of directories.
A rough equivalent to `rm -rf`.
*/
return walkPath(filepath, root, callback_rmdir);
}