[macOS] Fix non-ASCII volume name listing, replace deprecated volume listing API. Remove hidden mount points from the volume list.

This commit is contained in:
bruvzg 2019-10-18 15:36:29 +03:00
parent 119bf23720
commit d8c2e6a31a
No known key found for this signature in database
GPG key ID: 89DD917D9CE4218D

View file

@ -48,18 +48,25 @@ String DirAccessOSX::fix_unicode_name(const char *p_name) const {
}
int DirAccessOSX::get_drive_count() {
NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths];
NSArray *res_keys = [NSArray arrayWithObjects:NSURLVolumeURLKey, NSURLIsSystemImmutableKey, nil];
NSArray *vols = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:res_keys options:NSVolumeEnumerationSkipHiddenVolumes];
return [vols count];
}
String DirAccessOSX::get_drive(int p_drive) {
NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths];
NSArray *res_keys = [NSArray arrayWithObjects:NSURLVolumeURLKey, NSURLIsSystemImmutableKey, nil];
NSArray *vols = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:res_keys options:NSVolumeEnumerationSkipHiddenVolumes];
int count = [vols count];
ERR_FAIL_INDEX_V(p_drive, count, "");
NSString *path = vols[p_drive];
return String([path UTF8String]);
String volname;
NSString *path = [vols[p_drive] path];
volname.parse_utf8([path UTF8String]);
return volname;
}
#endif //posix_enabled