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上的存储空间/高清空间通过代码的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 上使用 SQLite 数据库的空间请求

Adobe Acrobat Pro DC占用存储空间太大,怎么办?

iPhone 13 系列仍将限制在最大 512GB 存储空间

arcgis 空间数据存储

JS里面获取、存储、删除缓存里面的数据的具体代码是啥?

FileNet:获取存储区域上的可用空间