计算文件大小的分类
2016-05-07 09:32
225 查看
@implementation NSString (fileSize) - (unsigned long long)fileSize { // 总大小 unsigned long long size = 0; // 文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; // 文件属性 NSDictionary *attrs = [mgr attributesOfItemAtPath:self error:nil]; if ([attrs.fileType isEqualToString:NSFileTypeDirectory]) { // 文件夹 // 获得文件夹的大小 == 获得文件夹中所有文件的总大小 NSDirectoryEnumerator *enumerator = [mgr enumeratorAtPath:self]; for (NSString *subpath in enumerator) { // 全路径 NSString *fullSubpath = [self stringByAppendingPathComponent:subpath]; // 累加文件大小 if ([[mgr attributesOfItemAtPath:fullSubpath error:nil].fileType isEqualToString:NSFileTypeDirectory]) { //如果遍历到的是文件夹,那么继续遍历,只增加文件(而不是文件夹)的大小 continue; } size += [mgr attributesOfItemAtPath:fullSubpath error:nil].fileSize; NSLog(@"---%@",fullSubpath); } } else { // 文件 size = attrs.fileSize; } return size; } @end
相关文章推荐
- 小酌重构系列[7]——使用委派代替继承
- SDAU 练习三 1015 整数化二进制问题
- oracle恢复误drop掉的表,试用于10g及以上
- C++第五次实验-数组分离
- 裁剪头像为圆形
- 策略模式和工厂模式的区别
- CentOS Linux解决Device eth0 does not seem to be present
- 写一个自己的获取路径帮助类
- C++ Primer 学习笔记_50_类与数据抽象 --类作用域
- VC中常用预编译指令
- 自定义TableviewCell的UIMenuController
- 计算几何算法概览
- Ubnutn 16 安装Android studio 2.0
- 【C/C++】结构体和联合体的区别
- C++ Primer 学习笔记_49_类与数据抽象 -暗含的this指针
- Apache与Nginx的优缺点比较
- C++ Primer 学习笔记_48_类与数据抽象 -类的定义跟声明【下】
- C++ Primer 学习笔记_47_类与数据抽象 --类的定义和声明
- 对于JDBC数据库的初始化操作
- C++ Primer 学习笔记_46_STL实践与分析(20)--容器特有的算法