iphone - iPhone-设备上剩余的可用空间报告错误(+-200 Mb差异)

标签 iphone objective-c filesystems itunes diskspace

我使用这种方法来获取磁盘上的可用空间,该磁盘是从经过一些研究后发现的代码中提取的。

    float freeSpace = -1.0f;  
    NSError* error = nil;  
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSDictionary* dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];  

    if (dictionary) {  
        NSNumber* fileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];  
        freeSpace = [fileSystemSizeInBytes floatValue];  
    }

我想知道为什么运行此命令时会给我3660062720.000000字节的可用空间
这将产生3,408699035644531 Gb(/ 1024/1024/1024)

但是,查看我的iPhone设置->一般信息(以及iTunes),我说我的iPhone仅剩3.2 Gb。

错误在哪里?

最佳答案

似乎有时可用空间报告不正确https://discussions.apple.com/thread/2566412?threadID=2566412

编辑:我尝试下面的代码,并注意到在我的设备上,也有〜200MB差异。也许以某种方式为系统保留了存储空间?

NSDictionary *fsAttr = [[NSFileManager defaultManager] fileSystemAttributesAtPath:NSHomeDirectory()];

unsigned long long freeSpace = [[fsAttr objectForKey:NSFileSystemFreeSize] unsignedLongLongValue];

NSLog(@"%llu", freeSpace);
NSLog(@"%f", freeSpace / 1073741824.0); 

关于iphone - iPhone-设备上剩余的可用空间报告错误(+-200 Mb差异),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22224915/

相关文章:

iphone - 如何在核心数据堆栈中的客户端上使用 ABPeoplePickerNavigationController

iphone - initWithNibName 是否需要释放

iphone - 如何在 iPhone sdk,objective-c 中获取 UIWebView 的内容高度?

c - fuse 文件系统问题

linux - 格式化为FAT32后,Pen Drive无法在音频播放器中播放音频

iphone - 如何在iPhone模拟器上上网?

iphone - 我如何在 iOS 上制作爆炸动画?

ios - SQLCipher编译错误

ios - 何时在 xCode 6.4 中将 didMoveToView 或 initWithSize 与 SpriteKit 一起使用

java - HDFS 中的随机读/写