проверьте достаточно места на устройстве iphone перед загрузкой файлов - PullRequest
8 голосов
/ 15 марта 2011

Сейчас я могу успешно загружать удаленные файлы,

, но это только в том случае, если пользователь может выбрать один файл, если пользователь выбрал несколько имен файлов и нажал кнопку загрузки.Поэтому перед загрузкой файлов я хочу проверить, достаточно ли места на iphone, если да, затем загрузить, а если нет, то пользователь увидит окно с сообщением «недостаточно места», и он отключит несколько имен файлов, а затем сможет загружать файлы с сервера ...

есть ли способ проверить свободное место перед загрузкой?

Заранее спасибо

Ответы [ 2 ]

19 голосов
/ 15 марта 2011
+ (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; }

Используйте этот код для запроса файловой системы о наличии свободного места.

8 голосов
/ 15 марта 2011

Используйте эту функцию:

#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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...