|
@@ -8,7 +8,7 @@
|
|
|
* - PLATFORM_DESKTOP: FreeBSD, OpenBSD, NetBSD, DragonFly (X11 desktop)
|
|
|
* - PLATFORM_DESKTOP: OSX/macOS
|
|
|
* - PLATFORM_ANDROID: Android 4.0 (ARM, ARM64)
|
|
|
-* - PLATFORM_RPI: Raspberry Pi 0,1,2,3 (Raspbian)
|
|
|
+* - PLATFORM_RPI: Raspberry Pi 0,1,2,3,4 (Raspbian)
|
|
|
* - PLATFORM_WEB: HTML5 with asm.js (Chrome, Firefox)
|
|
|
* - PLATFORM_UWP: Windows 10 App, Windows Phone, Xbox One
|
|
|
*
|
|
@@ -1746,6 +1746,21 @@ bool IsFileExtension(const char *fileName, const char *ext)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+// Check if a directory path exists
|
|
|
+bool DirectoryExists(const char *dirPath)
|
|
|
+{
|
|
|
+ bool result = false;
|
|
|
+ DIR *dir = opendir(dirPath);
|
|
|
+
|
|
|
+ if (dir != NULL)
|
|
|
+ {
|
|
|
+ result = true;
|
|
|
+ closedir(dir);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
// Get pointer to extension for a filename string
|
|
|
const char *GetExtension(const char *fileName)
|
|
|
{
|
|
@@ -1816,6 +1831,28 @@ const char *GetDirectoryPath(const char *fileName)
|
|
|
return filePath;
|
|
|
}
|
|
|
|
|
|
+// Get previous directory path for a given path
|
|
|
+const char *GetPrevDirectoryPath(const char *path)
|
|
|
+{
|
|
|
+ static char prevDir[MAX_FILEPATH_LENGTH];
|
|
|
+ memset(prevDir, 0, MAX_FILEPATH_LENGTH);
|
|
|
+ int pathLen = strlen(path);
|
|
|
+
|
|
|
+ for (int i = (pathLen - 1); i >= 0; i--)
|
|
|
+ {
|
|
|
+ if ((path[i] == '\\') || (path[i] == '/'))
|
|
|
+ {
|
|
|
+ if ((i != (pathLen - 1)) && (path[pathLen - 2] != ':'))
|
|
|
+ {
|
|
|
+ strncpy(prevDir, path, i);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return prevDir;
|
|
|
+}
|
|
|
+
|
|
|
// Get current working directory
|
|
|
const char *GetWorkingDirectory(void)
|
|
|
{
|