Objective c 以编程方式获取iPhone上的已用空间和可用空间
可能重复:Objective c 以编程方式获取iPhone上的已用空间和可用空间,objective-c,ios,Objective C,Ios,可能重复: 我想在iOS应用程序中获取iOS设备的以下详细信息。我已经在谷歌上搜索过了,但是我没有得到任何关于这些的想法: 格式化空间 使用空间 自由空间 对statfs进行C系统调用 见: 这就是答案: 您可以使用 您需要的是以下功能: - (NSNumber *) totalDiskSpace; - (NSNumber *) freeDiskSpace; 对于总空间和可用空间,此方法将从UIDevice Hardware.h返回freeSpace - (uint64_t)freeDisk
我想在iOS应用程序中获取iOS设备的以下详细信息。我已经在谷歌上搜索过了,但是我没有得到任何关于这些的想法:
对statfs进行C系统调用 见: 这就是答案: 您可以使用 您需要的是以下功能:
- (NSNumber *) totalDiskSpace;
- (NSNumber *) freeDiskSpace;
对于总空间和可用空间,此方法将从UIDevice Hardware.h返回freeSpace
- (uint64_t)freeDiskspace{
uint64_t totalSpace = 0;
uint64_t totalFreeSpace = 0;
__autoreleasing NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue];
NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll));
}
else {
NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]);
}
return totalFreeSpace;
}
您还可以使用NSFileManager和方法
- (NSDictionary *)attributesOfFileSystemForPath:(NSString *)path error:(NSError **)error
在要发送数据的路径上。此方法使用statfs(在其他答案中提到)。这可能会帮助您:@H2CO3:我想知道。。。我们可以在沙盒应用程序中这样做吗?@AnoopVaidya为什么不能?这使用POSIX层。