2019独角兽企业重金招聘Python工程师标准>>>


#import <Foundation/Foundation.h>#include <sys/param.h>
#include <sys/mount.h>@interface DiskSpaceTool : NSObject/**手机剩余空间*/
+ (NSString *)freeDiskSpaceInBytes;/**手机总空间*/
+ (NSString *)totalDiskSpaceInBytes;/**某个文件夹占用空间的大小*/
+ (NSString *)folderSizeAtPath:(NSString*) folderPath;@end

#import "DiskSpaceTool.h"@implementation DiskSpaceTool+ (NSString *)freeDiskSpaceInBytes;
{struct statfs buf;long long freespace = -1;if(statfs("/var", &buf) >= 0){freespace = (long long)(buf.f_bsize * buf.f_bfree);}return [self humanReadableStringFromBytes:freespace];
}+ (NSString *)totalDiskSpaceInBytes;
{struct statfs buf;long long freespace = 0;if (statfs("/", &buf) >= 0) {freespace = (long long)buf.f_bsize * buf.f_blocks;}if (statfs("/private/var", &buf) >= 0) {freespace += (long long)buf.f_bsize * buf.f_blocks;}return [self humanReadableStringFromBytes:freespace];
}// 遍历文件夹获得文件夹大小
+ (NSString *) folderSizeAtPath:(NSString*) folderPath
{NSFileManager* manager = [NSFileManager defaultManager];if (![manager fileExistsAtPath:folderPath]) return 0;NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];NSString* fileName;long long folderSize = 0;while ((fileName = [childFilesEnumerator nextObject]) != nil){NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];folderSize += [self fileSizeAtPath:fileAbsolutePath];}return [self humanReadableStringFromBytes:folderSize];
}// 单个文件的大小
+ (long long) fileSizeAtPath:(NSString*) filePath
{NSFileManager* manager = [NSFileManager defaultManager];if ([manager fileExistsAtPath:filePath]){return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];}return 0;
}// 计算文件大小
+ (NSString *)humanReadableStringFromBytes:(unsigned long long)byteCount
{float numberOfBytes = byteCount;int multiplyFactor = 0;NSArray *tokens = [NSArray arrayWithObjects:@"bytes",@"KB",@"MB",@"GB",@"TB",@"PB",@"EB",@"ZB",@"YB",nil];while (numberOfBytes > 1024) {numberOfBytes /= 1024;multiplyFactor++;}return [NSString stringWithFormat:@"%4.2f %@",numberOfBytes, [tokens objectAtIndex:multiplyFactor]];
}@end

转载于:https://my.oschina.net/gwlCode/blog/806452

iOS开发 - 获取手机总空间、剩余空间,文件夹占用空间大小相关推荐

  1. ios开发-获取手机相关信息

    今天在做客户端的时候,里面有个意见反馈功能. 调用系统带的邮件功能,发送邮件到指定邮箱. 然后我就想,应该在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者 ...

  2. iOS开发获取手机通讯录中的电话号码和姓名

    1.申请授权 #import "AppDelegate.h" #import <AddressBook/AddressBook.h>@interface AppDele ...

  3. IOS开发—— 获取AppDelegate的属性或字段

    IOS开发-- 获取AppDelegate的属性或字段 其它控制器中: AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplicat ...

  4. ionic开发——获取手机唯一标识imei码

    首先,我们要添加了cordova-plugin-device插件,具体流程可以查看ionic开发获取手机设备信息点击打开链接 这篇说明如何获取手机的imei码 我们需要在cordova-plugin- ...

  5. iOS 如何获取手机型号、系统版本、电池电量

    1.手机型号:iPhone 6 NSString* phoneModel = [self iphoneType]; //方法在下面 2.手机系统版本:9.1 NSString* phoneVersio ...

  6. IOS开发基础之使用AFNetworking框架实现文件上传get和post请求

    IOS开发基础之使用AFNetworking框架实现文件上传get和post请求 AFNetworking框架 请自行从github官网clone.命令为 git clone xxx.xxx是项目的地 ...

  7. sdcard里边的东西能删除吗_手机内存中有一个sdcard文件夹删除不了

    问:我的g14手机里原本内存空间共一个多G呢,现在我打开一看还剩84m,我用拉峰文件管理看到手机内存中有一个sdcard文件夹,这个文件占了一个多G,而且删还删不掉,不知道是什么原因? 回答:你所说的 ...

  8. 手机中geetest是什么文件_安卓手机里这些全英文件夹,到底是什么?删了它,手机瞬间多了5个G...

    关注"践行者鱼嫩子","置顶公众号",点击"查看历史消息 ",这样您就可以每天继续免费收到文章了.点击 ",会有更多精彩呈现.每天 ...

  9. android os能删掉那,安卓手机里的那些英文文件夹到底都是啥?可不可以删除?...

    原标题:安卓手机里的那些英文文件夹到底都是啥?可不可以删除? 对于使用安卓手机的强迫症患者来说,文件夹必须经常清理,尽管里面没有任何东西,也必须要彻底删除.虽然强迫症治好了,但总会不小心误删一些重要的 ...

  10. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

最新文章

  1. 斯坦福大学统计系教授带你玩转微生物组分析
  2. audio type多种类型_http content-type常见文件格式类型
  3. android 字符串相似度对比,Android中的OpenCV图像比较和相似度
  4. 纪中A组模拟赛总结(2021.7.15)
  5. 二位数组的随机生成,遍历,求和,反转。和两个变量的^反转 源码
  6. 【初始化】神经网络到底该如何初始化?吴恩达Deeplearning.ai最新干货|湾区人工智能...
  7. 向程序发送命令失败_Word提示:“向程序发送命令时出现问题”重装软件也没用?...
  8. We FALL ASleep At Night, We Do REST Right
  9. 上市公司高管CEO员工数据大全 1991-2021年上市公司高管CEO教育背景学历结构薪酬职务任期年龄出生地 员工学历结构人员结构
  10. 计算机考试后勤保障管理制度,计算机在高校后勤管理的应用
  11. 常用的java开发框架_Java开发中常用框架
  12. 【社工】社会工程学框架
  13. 声纹识别之Alize入门教程(四):matlab代码读取Spro工具提取的mfcc特征
  14. canvas绘图API
  15. [转]使用CSS和JQuery,模拟超链接点击 原文:http://www.cnblogs.com/return8023/archive/2012/05/19/2509177.html...
  16. 五百万微商都在用微信智能获客小程序,你还不加入?
  17. 再玩五分钟手机就开始学习
  18. 【OpenCV图像处理】十六、图像空域滤波(下)
  19. linux中test命令详解
  20. 英语不好学不好编程?程序员记忆单词专属诀窍,效果简直要逆天

热门文章

  1. 5.4 机器翻译 数据集
  2. 3.4 tensorflow2实现两总体样本尺度参数的秩检验法——python实战
  3. windowsf进程管理器中进程解释
  4. 【ffmpeg】overlay带有透明通道的视频
  5. php缩略图 实例,php生成缩略图后填充白边的代码示例
  6. PHP字体向右移动,CSS3如何实现文字向右循环闪过效果以及可在移动端使用的实例代码分享...
  7. Eclipse — 如何恢复Eclipse中被误删除的文件
  8. 7-5 抓老鼠啊~亏了还是赚了? (20 分)
  9. L1-020 帅到没朋友 (20 分) — 团体程序设计天梯赛
  10. Mysql的跨表更新