Есть ли способ исключить резервное копирование некоторых файлов в вашем приложении на компьютер пользователя? У меня есть приложение для просмотра фотографий, которое позволяет вам хранить фотографии / видео локально, когда пользователь выполняет синхронизацию своего устройства и резервное копирование приложения занимает очень много времени с момента резервного копирования всех локально сохраненных фотографий / видео. Возможно, существует каталог (/ tmp /?), Для которого не будет выполнено резервное копирование?
Да, вы должны поместить файлы, которые вы не хотите резервировать, в каталог Caches.Путь можно получить:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachesPath = [paths objectAtIndex:0];
Руководство по программированию iOS Applocation: несколько важных каталогов приложений говорит о том, какие папки резервируются, а какие нет.Вы должны использовать <Application_Home>/Library/Caches для хранения постоянных данных, резервное копирование которых не требуется.
<Application_Home>/Library/Caches
Руководство по программированию приложений iPhone: получение путей к каталогам приложений показывает, как получить путь к этой папкеиспользуя NSSearchPathForDirectoriesInDomains с параметром NSCachesDirectory.
NSSearchPathForDirectoriesInDomains
NSCachesDirectory
/ Библиотека / Кэши не гарантированно хранятся во время обновлений приложения. Это может быть проблемой для ваших медиа-файлов.
Документы Apple предлагают это в iOS 5.1 и более поздних версиях:
NSURL *storeUrl = [NSURL fileURLWithPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"your_file"]]; NSError *error; [storeUrl setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error]; if (error) { NSLog(@"couldn't exclude database from backups: %@", [error localizedDescription]); }