iPhone上的存储空间/高清空间通过代码
Posted
技术标签:
【中文标题】iPhone上的存储空间/高清空间通过代码【英文标题】:Storage Space/HD space on iPhone via code 【发布时间】:2011-03-25 15:04:25 【问题描述】:如何获取 iPhone 上剩余的存储空间量?我需要能够获取您可以通过 appbox pro 获得的信息,即。已用空间、可用空间、总空间,均以 GB 为单位。
如何在不使用私有 API 的情况下在应用内访问它?谢谢
【问题讨论】:
【参考方案1】:查看http://kdbdallas.com/2008/12/27/maciphone-show-availble-useable-diskspace/ 的 zip 文件(不是源代码) - 我在我的项目中使用它并且它有效。
我做了一些更改(我需要字节),但您有以下所有单位的代码:
-(int) bytesAvailable
float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
int bytes = availableDisk;
return (int)bytes;
-(int) kilosAvailable
float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
int kilos = availableDisk/1024;
return (int)kilos;
-(int) megasAvailable
float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
int megas = availableDisk/1024/1024;
return (int)megas;
-(int) gigasAvailable
float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
int gigas = availableDisk/1024/1024/1024;
return (int)gigas;
要使用它,您只需调用:
FSStats *stats = [[FSStats alloc] initWithFilePath:@"/"];
int freeSpace = [stats bytesAvailable];
要获得总大小,您只需使用“f_bsize”:
float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
float totalSize = (float)(tStats.f_bsize * tStats.f_bsize);
NSLog(@"Total size: %.2f | Free: %.2f", totalSize, availableDisk);
所有功劳归达拉斯布朗http://kdbdallas.com/
【讨论】:
+1 给达拉斯布朗的裁判,但你改变了太多东西;将应用程序的文档目录提供给 FSStats,而不是 @"/"。我从文档目录中获得 5.9GB(与 iTunes 报告的相同),但从 @"/" 获得的只有 139MB。我猜是某种文件权限问题。以上是关于iPhone上的存储空间/高清空间通过代码的主要内容,如果未能解决你的问题,请参考以下文章
Adobe Acrobat Pro DC占用存储空间太大,怎么办?