IOS копирует файлы из основного каталога в каталог документов
Я пытаюсь скопировать файлы, которые я добавляю в папку с именем "includes", в папку в каталоге документов, также называемую "includes". Я получаю за resContents ноль. Зачем? Спасибо вам
- (void)copyResources{
NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"includes"];
NSString *destPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"includes"];
NSArray* resContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:sourcePath error:NULL];
for (NSString* obj in resContents){
NSError* error;
if (![[NSFileManager defaultManager] copyItemAtPath:[sourcePath stringByAppendingPathComponent:obj] toPath:[destPath stringByAppendingPathComponent:obj]
error:&error])
NSLog(@"Error: %@", error);;
}
}
Ответы
Ответ 1
Вы должны добавить в свой проект Xcode свою папку includes
как ссылку на папку, а не группу.
Группы предназначены только для того, чтобы держать вещи организованными, а не предоставлять структуру папок, и поэтому при копировании на устройство все файлы заканчиваются на одном уровне.
Ответ 2
Посмотрите на свой скомпилированный набор приложений.
Обычно генерируемые XCode пакеты являются плоскими. Это означает, что, хотя ваши добавленные файлы ресурсов будут скопированы в пакет, любые созданные вами каталоги не будут и, следовательно, на пути к ресурсу нет каталога "includes". Следовательно, ваше исходное содержимое будет равно нулю. Поэтому в вашем случае попробуйте использовать только `NSString * sourcePath = [[NSBundle mainBundle] resourcePath];
Изменить: Ну и, очевидно, добавление ссылки на папку также работает (кредиты Игнасио Инглесу).