Add filtering folders in ScanDirectoryFiles and ScanDirectoryFilesRecursively
Add define FILTER_FOLDER for that purpose Fix folder names matching filter being added to result
This commit is contained in:
parent
5f49ec3d64
commit
6028447663
|
|
@ -194,6 +194,10 @@
|
|||
#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta
|
||||
#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo)
|
||||
|
||||
// Filter string used in ScanDirectoryFiles, ScanDirectoryFilesRecursively and
|
||||
// LoadDirectoryFilesEx to include directories in the result array
|
||||
#define FILTER_FOLDER "/DIR"
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Structures Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
|
|
|
|||
28
src/rcore.c
28
src/rcore.c
|
|
@ -3312,6 +3312,8 @@ static void ScanDirectoryFiles(const char *basePath, FilePathList *files, const
|
|||
#endif
|
||||
|
||||
if (filter != NULL)
|
||||
{
|
||||
if (IsPathFile(path))
|
||||
{
|
||||
if (IsFileExtension(path, filter))
|
||||
{
|
||||
|
|
@ -3320,6 +3322,15 @@ static void ScanDirectoryFiles(const char *basePath, FilePathList *files, const
|
|||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TextFindIndex(filter, FILTER_FOLDER) >= 0)
|
||||
{
|
||||
strcpy(files->paths[files->count], path);
|
||||
files->count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(files->paths[files->count], path);
|
||||
files->count++;
|
||||
|
|
@ -3376,7 +3387,22 @@ static void ScanDirectoryFilesRecursively(const char *basePath, FilePathList *fi
|
|||
break;
|
||||
}
|
||||
}
|
||||
else ScanDirectoryFilesRecursively(path, files, filter);
|
||||
else
|
||||
{
|
||||
if (filter != NULL && TextFindIndex(filter, FILTER_FOLDER) >= 0)
|
||||
{
|
||||
strcpy(files->paths[files->count], path);
|
||||
files->count++;
|
||||
}
|
||||
|
||||
if (files->count >= files->capacity)
|
||||
{
|
||||
TRACELOG(LOG_WARNING, "FILEIO: Maximum filepath scan capacity reached (%i files)", files->capacity);
|
||||
break;
|
||||
}
|
||||
|
||||
ScanDirectoryFilesRecursively(path, files, filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user