2011-06-01 162 views
0

任何人都可以帮我吗在iPhone中创建数据库副本

我们如何创建数据库副本。

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

我们如何才能在我们的应用程序路径

创建文件夹,我们如何可以复制在我们的应用程序路径

thanx提前文件的文件夹。

回答

5

“用于创建数据库的副本......”

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"); 
}