diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index 0b0417928ab..5befc5a7f5c 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -1913,7 +1913,7 @@ bool _Directory::dir_exists(String p_dir) { int _Directory::get_space_left(){ ERR_FAIL_COND_V(!d,0); - return d->get_space_left(); + return d->get_space_left()/1024*1024; //return value in megabytes, given binding is int } Error _Directory::copy(String p_from,String p_to){ diff --git a/drivers/unix/dir_access_unix.cpp b/drivers/unix/dir_access_unix.cpp index 1e55e39e313..f0e4511b1d5 100644 --- a/drivers/unix/dir_access_unix.cpp +++ b/drivers/unix/dir_access_unix.cpp @@ -321,7 +321,7 @@ size_t DirAccessUnix::get_space_left() { struct statvfs vfs; if (statvfs(current_dir.utf8().get_data(), &vfs) != 0) { - return -1; + return 0; }; return vfs.f_bfree * vfs.f_bsize; diff --git a/drivers/windows/dir_access_windows.cpp b/drivers/windows/dir_access_windows.cpp index f64eb036c3e..6cd494de4e2 100644 --- a/drivers/windows/dir_access_windows.cpp +++ b/drivers/windows/dir_access_windows.cpp @@ -359,7 +359,8 @@ FileType DirAccessWindows::get_file_type(const String& p_file) const { size_t DirAccessWindows::get_space_left() { uint64_t bytes = 0; - GetDiskFreeSpaceEx(NULL,(PULARGE_INTEGER)&bytes,NULL,NULL); + if (!GetDiskFreeSpaceEx(NULL,(PULARGE_INTEGER)&bytes,NULL,NULL)) + return 0; //this is either 0 or a value in bytes. return (size_t)bytes;