如何以编程方式获取 mac 的存储容量?
How to get storage capacity of mac programmatically?
如何在 Cocoa 中获取可用 space 和免费 space 的总容量?
如屏幕截图所示,我想在我的 Cocoa macOS 应用程序中以编程方式获取它。
使用 -[NSFileManager mountedVolumeURLsIncludingResourceValuesForKeys:options:]
获取卷的 NSURL
s。对于 propertyKeys
,使用 @[ NSURLVolumeTotalCapacityKey, NSURLVolumeAvailableCapacityKey ]
。您可能想在选项中使用 NSVolumeEnumerationSkipHiddenVolumes
。
然后,对于每个 URL,使用相同的 属性 键调用 -[NSURL resourceValuesForKeys:error:]
。这将为您提供一个字典,其键为 NSURLVolumeTotalCapacityKey
和 NSURLVolumeAvailableCapacityKey
,其值为 NSNumber
包含相应数量的对象,以字节为单位。
如果您需要格式化这些值以供显示,请使用 NSByteCountFormatter
。
我从 link 那里得到了答案。
所以我发布了我使用该参考所做的事情。
NSError *error;
NSFileManager *fm = [NSFileManager defaultManager];
NSDictionary *attr = [fm attributesOfFileSystemForPath:@"/"
error:&error];
NSLog(@"Attr: %@", attr);
float totalsizeGb = [[attr objectForKey:NSFileSystemSize]floatValue] / 1000000000;
NSLog(@" size in GB %.2f",totalsizeGb);
float freesizeGb = [[attr objectForKey:NSFileSystemFreeSize]floatValue] / 1000000000;
NSLog(@" size in GB %.2f",freesizeGb);
希望对其他人也有帮助。
谢谢...
如何在 Cocoa 中获取可用 space 和免费 space 的总容量?
如屏幕截图所示,我想在我的 Cocoa macOS 应用程序中以编程方式获取它。
使用 -[NSFileManager mountedVolumeURLsIncludingResourceValuesForKeys:options:]
获取卷的 NSURL
s。对于 propertyKeys
,使用 @[ NSURLVolumeTotalCapacityKey, NSURLVolumeAvailableCapacityKey ]
。您可能想在选项中使用 NSVolumeEnumerationSkipHiddenVolumes
。
然后,对于每个 URL,使用相同的 属性 键调用 -[NSURL resourceValuesForKeys:error:]
。这将为您提供一个字典,其键为 NSURLVolumeTotalCapacityKey
和 NSURLVolumeAvailableCapacityKey
,其值为 NSNumber
包含相应数量的对象,以字节为单位。
如果您需要格式化这些值以供显示,请使用 NSByteCountFormatter
。
我从 link 那里得到了答案。
所以我发布了我使用该参考所做的事情。
NSError *error;
NSFileManager *fm = [NSFileManager defaultManager];
NSDictionary *attr = [fm attributesOfFileSystemForPath:@"/"
error:&error];
NSLog(@"Attr: %@", attr);
float totalsizeGb = [[attr objectForKey:NSFileSystemSize]floatValue] / 1000000000;
NSLog(@" size in GB %.2f",totalsizeGb);
float freesizeGb = [[attr objectForKey:NSFileSystemFreeSize]floatValue] / 1000000000;
NSLog(@" size in GB %.2f",freesizeGb);
希望对其他人也有帮助。
谢谢...