objective-c文件大小格式化程序

Pan*_*kin 4 size formatting file objective-c string-formatting

在Objective C中是否有用于格式化文件大小的方法?或者你可以建议我一些库/源代码/等等?

我的意思是你有一些文件大小应该显示这样的取决于给定的大小:

  • 1234 kb
  • 1,2 mb
  • 等等..

提前致谢

Mic*_*iel 9

这个很优雅地解决了这个问题:

[NSByteCountFormatter stringFromByteCount:countStyle:]
Run Code Online (Sandbox Code Playgroud)

用法示例:

long long fileSize = 14378165;
NSString *displayFileSize = [NSByteCountFormatter stringFromByteCount:fileSize
                                                           countStyle:NSByteCountFormatterCountStyleFile];
NSLog(@"Display file size: %@", displayFileSize);

fileSize = 50291;
displayFileSize = [NSByteCountFormatter stringFromByteCount:fileSize
                                                 countStyle:NSByteCountFormatterCountStyleFile];
NSLog(@"Display file size: %@", displayFileSize);
Run Code Online (Sandbox Code Playgroud)

日志输出:

显示文件大小:14.4 MB
显示文件大小:50 KB

输出将根据设备的区域设置正确格式化.

自iOS 6.0和OS X 10.8开始提供.


zah*_*lay 0

获取文件大小,然后计算是以字节为单位还是以kb或mb为单位

NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL error:&attributesError];

NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
long long fileSize = [fileSizeNumber longLongValue];



Then conversion table

    1 byte = 8 bits

    1 KiB = 1,024 bytes

    1 MiB = 1024  kb

    1 GiB = 1024  mb
Run Code Online (Sandbox Code Playgroud)

检查此链接