Оскар правильный, в настоящее время нет способа скопировать всю папку с помощью одной команды.
Такой метод может помочь (предупреждаю - мое офисное соединение не работает, и я не могу получить доступ к своему Mac, чтобы убедиться, что этот код работает. Проверьте это, как только смогу) Просто позвоните с помощью [self copyDirectory: @ "Images"], и он обработает все остальное.
-(void) copyDirectory:(NSString *)directory {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:directory];
NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:directory];
if (![fileManager fileExistsAtPath:documentDBFolderPath]) {
//Create Directory!
[fileManager createDirectoryAtPath:documentDBFolderPath withIntermediateDirectories:NO attributes:nil error:&error];
} else {
NSLog(@"Directory exists! %@", documentDBFolderPath);
}
NSArray *fileList = [fileManager contentsOfDirectoryAtPath:resourceDBFolderPath error:&error];
for (NSString *s in fileList) {
NSString *newFilePath = [documentDBFolderPath stringByAppendingPathComponent:s];
NSString *oldFilePath = [resourceDBFolderPath stringByAppendingPathComponent:s];
if (![fileManager fileExistsAtPath:newFilePath]) {
//File does not exist, copy it
[fileManager copyItemAtPath:oldFilePath toPath:newFilePath error:&error];
} else {
NSLog(@"File exists: %@", newFilePath);
}
}
}
- РЕДАКТИРОВАТЬ 11/9/2011 -
К сожалению об этом, так как я предупреждал, я не смог получить доступ к своему Mac для проверки кода.
Обновил код, и я убедился, что он сейчас работает правильно. Добавлена пара быстрых NSLogs, чтобы сообщить вам, существует ли новый каталог или новый файл.