计算设备剩余的空间

2019-04-22  本文已影响0人  forping

方法一:

+ (NSNumber *)freeDiskSpace {
    NSDictionary *fattr = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];
    NSNumber *totalSpace = [fattributes objectForKey:NSFileSystemSize];
    NSNumber *freeSpace [fattr objectForKey:NSFileSystemFreeSize];

    return freeSpace;  
}

方法二:

#include <sys/param.h>
#include <sys/mount.h>

+ (unsigned long long)freeDiskSpace{
    struct statfs buf;
    unsigned long long freeSpace = -1;
    if (statfs("/var", &buf) >= 0) {
          freeSpace = (unsigned long long)(buf.f_bsize * buf.f_bavail);
    }
    return freeSpace;
}

方法三:

+ (NSNumber *)freeDiskSpace {
    NSError *error = nil;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
    if (dictionary)
    {
        NSNumber *freeSpace = [dictionary objectForKey:NSFileSystemFreeSize];        
        NSNumber *totalSpace = [dictionary objectForKey:NSFileSystemSize];
       return freeSpace;
    } 
  return nil;
}
上一篇 下一篇

猜你喜欢

热点阅读