diff --git a/libretro-common/file/retro_stat.c b/libretro-common/file/retro_stat.c index d3a2664148..ad5008889a 100644 --- a/libretro-common/file/retro_stat.c +++ b/libretro-common/file/retro_stat.c @@ -100,20 +100,23 @@ static bool path_stat(const char *path, enum stat_mode mode, int32_t *size) if (cellFsStat(path, &buf) < 0) return false; #elif defined(_WIN32) - struct stat buf; - DWORD ret = GetFileAttributes(path); + WIN32_FILE_ATTRIBUTE_DATA file_info; + DWORD ret = GetFileAttributes(path, 0, &file_info); if (ret == INVALID_FILE_ATTRIBUTES) return false; - if (stat(path, &buf) < 0) - return false; #else struct stat buf; if (stat(path, &buf) < 0) return false; #endif +#if defined(_WIN32) + if (size) + *size = file_info.nFileSizeLow; +#else if (size) *size = buf.st_size; +#endif switch (mode) {