这个问题已经在这里有了答案:
已关闭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中使用NSByteCountFormatterCountStyleFile
,NSByteCountFormatterCountStyleMemory
,NSByteCountFormatterCountStyleDecimal
或NSByteCountFormatterCountStyleBinary
。关于objective-c - 如何在Cocoa中正确获取文件大小并将其转换为MB,GB? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7846495/