目前我可以成功下载远程文件,
但是只有当用户选择一个文件时才能这样做,如果用户选择多个文件名并按下载,则无法下载。因此,在下载文件之前,我想检查iPhone上是否有足够的空间,如果有,则下载,如果没有,则用户可以看到消息框“空间不足”,然后他将取消选中一些文件名,然后可以从服务器下载文件...
有没有办法在下载之前检查可用空间?
提前感谢您的帮助。
目前我可以成功下载远程文件,
但是只有当用户选择一个文件时才能这样做,如果用户选择多个文件名并按下载,则无法下载。因此,在下载文件之前,我想检查iPhone上是否有足够的空间,如果有,则下载,如果没有,则用户可以看到消息框“空间不足”,然后他将取消选中一些文件名,然后可以从服务器下载文件...
有没有办法在下载之前检查可用空间?
提前感谢您的帮助。
+ (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; }
使用此代码查询文件系统中可用的剩余空间。
使用这个函数:
#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
}