как проверить файл в каталоге документов и скопировать из NSBundle

Я хочу создать одно приложение, которое считывает файл из каталога документов, но сначала я хочу проверить каталог документов, если файл не существует, самостоятельно скопировать этот файл (Db.sqlite) из NSBundle Main в каталог документов и прочитать его.

Я мог бы прочитать данные из каталога документов или проверить каталог документов, но я не знаю, как скопировать файл из NSBundle в каталог документов.

пожалуйста, помогите мне об этом.


person david    schedule 16.05.2013    source источник


Ответы (1)


Пытаться

    - (void)copyDatabaseIfNeeded
    {    
        BOOL success;

        NSFileManager *fileManager = [NSFileManager defaultManager];
        success = [fileManager fileExistsAtPath:[self getDBPath]];
        if(success)
        {
            return;// If exists, then do nothing.
        }
        //Get DB from bundle & copy it to the doc dirctory.
        NSString *databasePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"DB.sqlite"];
        [fileManager copyItemAtPath:databasePath toPath:[self getDBPath] error:nil];
    }

    //Check DB in doc directory.
    - (NSString *)getDBPath
    {
           NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
           NSString *documentsDir = [paths objectAtIndex:0];
           return [documentsDir stringByAppendingPathComponent:@"DB.sqlite"];
    }

Он скопирует вашу БД в каталог документов, после чего вы сможете использовать ее из каталога документов.

person Girish    schedule 16.05.2013