Как изменить файл в комплекте приложений?

Вопрос:

В моем приложении я загружаю данные из файла CSV, хранящегося в ресурсах пакета. Тем не менее, я хотел бы иметь возможность обновлять этот файл программно, когда пользователь нажимает кнопку “Обновить”. Есть ли способ изменить ресурс в наборе приложений программно? Вот код, который я использую для доступа к файлу:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"query_result" ofType:@"csv"];
NSArray *rows = [NSArray arrayWithContentsOfCSVFile:path];

Ответ №1

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

Используйте эту копию кода из mainbundle в Document.

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;

NSString *dataPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"tessdata"];
NSLog(@"Datapath is %@", dataPath);

// If the expected store doesn't exist, copy the default store.
if ([fileManager fileExistsAtPath:dataPath] == NO)
{
NSString *tessdataPath = [[NSBundle mainBundle] pathForResource:@"eng" ofType:@"traineddata"];
[fileManager copyItemAtPath:tessdataPath toPath:dataPath error:&error];

}

-(NSString*) applicationDocumentsDirectory{
// Get the documents directory
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPaths objectAtIndex:0];
return docsDir;
}

И затем получите сохраненный файл для изменения…

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);

NSString *fullPath = [[paths lastObject] stringByAppendingPathComponent:@"recentDownload.txt"];

Оцените статью
TechArks.Ru
Добавить комментарий