IOS成长之路-添加数据库文件到应用程序路径中

来源:互联网 发布:淘宝店招设计效果图 编辑:程序博客网 时间:2024/06/01 09:19
  1. /*===---=== 
  2.         在这个部分中我么进行一下操作:(要把数据库文件存放到储存的位置中) 
  3.            1.获取应用程序的路径,在手机中就是 应用程序存储数据的地方 
  4.            2.把数据库文件的名称拼接到上面得到的路径上 
  5.            3.根据拼接好的路径去寻找,并判断这个文件是否存在 
  6.      ===---===*/  
  7.     //获取应用程序的路径  
  8.     NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(  
  9.                                                                NSDocumentDirectory,   
  10.                                                                NSUserDomainMask,   
  11.                                                                YES);  
  12.     NSString *documentFolderPath = [searchPaths objectAtIndex:0];  
  13.     NSLog(@"docoumentFolderPath=%@",documentFolderPath);  
  14.       
  15.     //往应用程序路径中添加数据库文件名称,把它们拼接起来, 这里用到了宏定义(目的是不易出错)  
  16.     dbFilePath = [documentFolderPath stringByAppendingPathComponent:DATABASE_FILE_NAME];  
  17.     NSLog(@"dbFilePath = %@",dbFilePath);  
  18.   
  19.     //  
  20.       
  21.       
  22.     /* 
  23.      为什么要往应用程序里添加数据库文件这个过程: 
  24.          因为下面要进行判断,会根据这个路径去查找应用程序的路径中到底有没有这个文件, 
  25.              如果有,则不用在此拷贝了, 
  26.              如果没有,则重新拷贝一次, 
  27.        数据库文件必须添加进取,否则无法进行数据库的操作,而且必须添加一次, 
  28.       
  29.      那么为什么必须要添加一次呢? 
  30.          因为我们在程序中实现对数据库的修改,然而却又把数据库添加了一次, 
  31.             那么新添加的数据库就会把旧的数据库覆盖掉,那么程序中对数据库的修改也不能实现, 
  32.                所以数据库只能添加一次且是在程序运行初添加 
  33.      */  
  34.       
  35.     //根据上面拼接好的路径 dbFilePath ,利用NSFileManager 类的对象的fileExistsAtPath方法来检测是否存在,返回一个BOOL值  
  36.     //1. 创建NSFileManager对象  NSFileManager包含了文件属性的方法  
  37.     NSFileManager *fm = [NSFileManager defaultManager];  
  38.       
  39.     //2. 通过 NSFileManager 对象 fm 来判断文件是否存在,存在 返回YES  不存在返回NO  
  40.     BOOL isExist = [fm fileExistsAtPath:dbFilePath];  
  41.      //- (BOOL)fileExistsAtPath:(NSString *)path;  
  42.       
  43.     //如果不存在 isExist = NO,拷贝工程里的数据库到Documents下  
  44.     if (!isExist)   
  45.     {  
  46.         //拷贝数据库  
  47.           
  48.         //获取工程里,数据库的路径,因为我们已在工程中添加了数据库文件,所以我们要从工程里获取路径  
  49.         NSString *backupDbPath = [[NSBundle mainBundle]  
  50.                                   pathForResource:@"shopping"  
  51.                                   ofType:@"db"];  
  52.         //这一步实现数据库的添加,  
  53.         // 通过NSFileManager 对象的复制属性,把工程中数据库的路径拼接到应用程序的路径上  
  54.         BOOL cp = [fm copyItemAtPath:backupDbPath toPath:dbFilePath error:nil];  
  55.         NSLog(@"cp = %d",cp);  
  56.         //- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error  
  57.         NSLog(@"backupDbPath =%@",backupDbPath);  
  58.           
  59.     }  
  60.     NSLog(@"isExist =%d",isExist);  
阅读全文
0 0
原创粉丝点击