Создать копию базы данных в iPhone

#iphone #sql

#iPhone #sql

Вопрос:

Может ли кто-нибудь помочь мне для:

  • Как мы можем создать копию базы данных?

  • Как мы можем открыть эту базу данных в iPhone?

  • Как мы можем создать папку в нашем пути к приложению?

  • Как мы можем скопировать папку с файлами в нашем пути к приложению?

Ответ №1:

«Для создания копии базы данных …»

 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:amp;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], amp;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:amp;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:amp;error];
    }
    else
        NSLog(@"FALSE");
}