这个问题已经在这里有了答案:




已关闭8年。






我是 cocoa 新手。我正在尝试正确获取文件夹文件的大小。如果小于1 GB,则以MB或GB显示。

我希望它的显示方式是四舍五入。


5.5 MB (如果大于1000)> 1.1 GB

我正在尝试使用这个

 unsigned  long long size= ([[[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:nil] fileSize]);

但是我无法正确转换数字并根据需要显示它。

谢谢。

最佳答案

要将文件大小转换为MB,Gb,请使用以下功能

- (id)transformedValue:(id)value
{

    double convertedValue = [value doubleValue];
    int multiplyFactor = 0;

    NSArray *tokens = @[@"bytes",@"KB",@"MB",@"GB",@"TB",@“PB”, @“EB”, @“ZB”, @“YB”];

    while (convertedValue > 1024) {
        convertedValue /= 1024;
        multiplyFactor++;
    }

    return [NSString stringWithFormat:@"%4.2f %@",convertedValue, tokens[multiplyFactor]];
}
编辑:
您也可以使用NSByteCountFormatter类。在iOS 6.0 / OS X v10.8及更高版本中可用。
[NSByteCountFormatter stringFromByteCount:1999 countStyle:NSByteCountFormatterCountStyleFile];
您可以在countStyle中使用NSByteCountFormatterCountStyleFileNSByteCountFormatterCountStyleMemoryNSByteCountFormatterCountStyleDecimalNSByteCountFormatterCountStyleBinary

关于objective-c - 如何在Cocoa中正确获取文件大小并将其转换为MB,GB? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7846495/

10-12 18:17