现在我能够成功下载远程文件,
但是,只有当用户选择多个文件名并按下载时,用户才能选择一个文件。因此,在下载文件之前,我想检查是否有足够的空间在iPhone上,如果是,然后下载,如果没有,那么用户可以看到消息框“没有足够的空间”,他将取消选中几个文件名,然后他可以从服务器下载文件... < / p>
有没有办法在下载前检查可用空间?
提前谢谢
答案 0 :(得分:19)
+ (long long)getFreeSpace {
long long freeSpace = 0.0f;
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemFreeSizeInBytes = [dictionary objectForKey: NSFileSystemFreeSize];
freeSpace = [fileSystemFreeSizeInBytes longLongValue];
} else {
//Handle error
}
return freeSpace; }
使用此代码查询文件系统的可用空间。
答案 1 :(得分:8)
使用此功能:
#include <sys/param.h>
#include <sys/mount.h>
+(float) diskSpace {
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
struct statfs tStats;
statfs([[paths lastObject] cString], &tStats);
float total_space = (float)(tStats.f_blocks * tStats.f_bsize);
return total_space;
// for freespace:
// float free_space = (float)(tStats.f_bavail * tStats.f_bsize);
// return free_space
}