Pārlūkot izejas kodu

Merge pull request #663 from jubalh/fileexists

Add FileExists() function
Ray 6 gadi atpakaļ
vecāks
revīzija
d1c4a4f873
2 mainītis faili ar 18 papildinājumiem un 1 dzēšanām
  1. 17 1
      src/core.c
  2. 1 0
      src/raylib.h

+ 17 - 1
src/core.c

@@ -135,8 +135,9 @@
     #include <direct.h>             // Required for: _getch(), _chdir()
     #define GETCWD _getcwd          // NOTE: MSDN recommends not to use getcwd(), chdir()
     #define CHDIR _chdir
+    #include <io.h>                 // Required for _access() [Used in FileExists()]
 #else
-    #include "unistd.h"             // Required for: getch(), chdir() (POSIX)
+    #include "unistd.h"             // Required for: getch(), chdir() (POSIX), access()
     #define GETCWD getcwd
     #define CHDIR chdir
 #endif
@@ -1514,6 +1515,21 @@ static const char *strprbrk(const char *s, const char *charset)
     return latestMatch;
 }
 
+// Return true if the file exists
+bool FileExists(const char *fileName)
+{
+    bool result = false;
+
+#if defined(_WIN32)
+    if (_access(fileName, 0) != -1)
+#else
+    if (access(fileName, F_OK) != -1)
+#endif
+        result = true;
+
+    return result;
+}
+
 // Get pointer to filename for a path string
 const char *GetFileName(const char *filePath)
 {

+ 1 - 0
src/raylib.h

@@ -870,6 +870,7 @@ RLAPI int GetRandomValue(int min, int max);                       // Returns a r
 // Files management functions
 RLAPI bool IsFileExtension(const char *fileName, const char *ext);// Check file extension
 RLAPI const char *GetExtension(const char *fileName);             // Get pointer to extension for a filename string
+RLAPI bool FileExists(const char *fileName);                      // Return true if file exists
 RLAPI const char *GetFileName(const char *filePath);              // Get pointer to filename for a path string
 RLAPI const char *GetFileNameWithoutExt(const char *filePath);    // Get filename string without extension (memory should be freed)
 RLAPI const char *GetDirectoryPath(const char *fileName);         // Get full path for a given fileName (uses static string)