2010-08-05 86 views
1

如何获得iPhone上剩余的存储空间量?我需要能够通过appbox pro得到您可以获得的信息,即。已用空间,可用空间,空间总量,全部用英制表示。通过代码获得iPhone上的存储空间/ HD空间

如何在不使用私有API的情况下在应用内访问它?谢谢

回答

1

检查出zip文件(不是来源)在http://kdbdallas.com/2008/12/27/maciphone-show-availble-useable-diskspace/ - 我在我的项目中使用它,它的工作原理。

我做了一些改变(我需要个字节),但你有以下的所有单位代码:

-(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/

+0

+1为达拉斯布朗的裁判,但你改变了一个太多的东西;将应用程序的文档目录提供给FSStats,而不是@“/”。我从文档目录中获得5.9GB(与iTunes报告相同),但从@“/”只有139MB。我猜想某种文件权限问题。 – 2013-01-07 04:30:43