Исключить файлы из резервной копии приложения - PullRequest
4 голосов
/ 20 июля 2010

Есть ли способ исключить резервное копирование некоторых файлов в вашем приложении на компьютер пользователя? У меня есть приложение для просмотра фотографий, которое позволяет вам хранить фотографии / видео локально, когда пользователь выполняет синхронизацию своего устройства и резервное копирование приложения занимает очень много времени с момента резервного копирования всех локально сохраненных фотографий / видео. Возможно, существует каталог (/ tmp /?), Для которого не будет выполнено резервное копирование?

Ответы [ 4 ]

5 голосов
/ 20 июля 2010

Да, вы должны поместить файлы, которые вы не хотите резервировать, в каталог Caches.Путь можно получить:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
NSString *cachesPath = [paths objectAtIndex:0]; 
4 голосов
/ 20 июля 2010

Руководство по программированию iOS Applocation: несколько важных каталогов приложений говорит о том, какие папки резервируются, а какие нет.Вы должны использовать <Application_Home>/Library/Caches для хранения постоянных данных, резервное копирование которых не требуется.

Руководство по программированию приложений iPhone: получение путей к каталогам приложений показывает, как получить путь к этой папкеиспользуя NSSearchPathForDirectoriesInDomains с параметром NSCachesDirectory.

3 голосов
/ 30 августа 2010

/ Библиотека / Кэши не гарантированно хранятся во время обновлений приложения. Это может быть проблемой для ваших медиа-файлов.

0 голосов
/ 14 августа 2013

Документы 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]);
}
...