如何以编程方式获取 mac 的存储容量?

How to get storage capacity of mac programmatically?

如何在 Cocoa 中获取可用 space 和免费 space 的总容量?

如屏幕截图所示,我想在我的 Cocoa macOS 应用程序中以编程方式获取它。

使用 -[NSFileManager mountedVolumeURLsIncludingResourceValuesForKeys:options:] 获取卷的 NSURLs。对于 propertyKeys,使用 @[ NSURLVolumeTotalCapacityKey, NSURLVolumeAvailableCapacityKey ]。您可能想在选项中使用 NSVolumeEnumerationSkipHiddenVolumes

然后,对于每个 URL,使用相同的 属性 键调用 -[NSURL resourceValuesForKeys:error:]。这将为您提供一个字典,其键为 NSURLVolumeTotalCapacityKeyNSURLVolumeAvailableCapacityKey,其值为 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);

希望对其他人也有帮助。

谢谢...