在iPhone中创建数据库副本 [英] Create copy of database in iPhone

查看:93
本文介绍了在iPhone中创建数据库副本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都可以帮助我:


  • 我们如何创建数据库副本?

  • How can we create copy of database?

我们如何在iPhone中打开该数据库?

How can we open that database in iPhone?

我们如何在应用程序路径中创建文件夹?

How can we create folder in our application path?

我们如何在申请路径中复制包含文件的文件夹?

How can we copy folder with files in our application path?

推荐答案

用于创建数据库副本......

BOOL success;

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [paths objectAtIndex:0];
NSString *finalPath = [documentPath stringByAppendingPathComponent:@"test.sqlite"];

success = [fileManager fileExistsAtPath:finalPath];

if(success)
{
    NSLog(@"Database Already Created.");
    return;
}

NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"test.sqlite"];

success = [fileManager copyItemAtPath:defaultPath toPath:finalPath error:&error];

if(success)
{
    NSLog(@"Database Created Successfully.");
}

打开数据库......

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [paths objectAtIndex:0];
NSString *finalPath = [documentPath stringByAppendingPathComponent:@"test.sqlite"];

if(sqlite3_open([finalPath UTF8String], &database) != SQLITE_OK)
{
    sqlite3_close(database);
    NSLog(@"Error to Open Database :- %s",sqlite3_errmsg(database));
}

用于在应用程序路径中创建文件夹

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder

NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/FolderName"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
     [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error];
}

用于复制应用程序中的文件和文件夹

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder

NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/FolderName"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
    BOOL successs;

    NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Files/FolderName"];

    successs  = [[NSFileManager defaultManager] fileExistsAtPath:defaultPath];

    if(successs)
    {
        NSLog(@"TRUE");
        NSString *strFile = [NSString stringWithFormat:@"%@",dataPath];

        NSLog(@"File :- '%@'",strFile);

        [fileManager copyItemAtPath:defaultPath toPath:strFile error:&error];
    }
    else
        NSLog(@"FALSE");
}

这篇关于在iPhone中创建数据库副本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆