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

时间:2015-06-10 05:41:26

标签: objective-c xcode macos cocoa storage

我正在使用mac应用程序。

enter image description here

如屏幕截图所示,我希望在我的Mac OS X可可应用程序中以编程方式获取此内容。

我希望获得总容量,可用空间和可用空间。

有人可以帮我吗?

...谢谢

2 个答案:

答案 0 :(得分:4)

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

然后,对于每个URL,使用相同的属性键调用-[NSURL resourceValuesForKeys:error:]。这将为您提供一个字典,其密钥为NSURLVolumeTotalCapacityKeyNSURLVolumeAvailableCapacityKey,其值为NSNumber个对象,其中包含相应的数量,以字节为单位。

如果您需要格式化这些值以进行显示,请使用NSByteCountFormatter

答案 1 :(得分:1)

我从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);

希望能帮助其他人。

...谢谢