sqlite3导入到程序Document

/*===---===
在这个部分中我么进行一下操作:(要把数据库文件存放到储存的位置中)
1.获取应用程序的路径,在手机中就是 应用程序存储数据的地方
2.把数据库文件的名称拼接到上面得到的路径上
3.根据拼接好的路径去寻找,并判断这个文件是否存在
===---===*/
//获取应用程序的路径
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *documentFolderPath = [searchPaths objectAtIndex:0];
NSLog(@"docoumentFolderPath=%@",documentFolderPath);

//往应用程序路径中添加数据库文件名称,把它们拼接起来, 这里用到了宏定义(目的是不易出错)
dbFilePath = [documentFolderPath stringByAppendingPathComponent:DATABASE_FILE_NAME];
NSLog(@"dbFilePath = %@",dbFilePath);

//


/*
为什么要往应用程序里添加数据库文件这个过程:
因为下面要进行判断,会根据这个路径去查找应用程序的路径中到底有没有这个文件,
如果有,则不用在此拷贝了,
如果没有,则重新拷贝一次,
数据库文件必须添加进取,否则无法进行数据库的操作,而且必须添加一次,

那么为什么必须要添加一次呢?
因为我们在程序中实现对数据库的修改,然而却又把数据库添加了一次,
那么新添加的数据库就会把旧的数据库覆盖掉,那么程序中对数据库的修改也不能实现,
所以数据库只能添加一次且是在程序运行初添加
*/

//根据上面拼接好的路径 dbFilePath ,利用NSFileManager 类的对象的fileExistsAtPath方法来检测是否存在,返回一个BOOL值
//1. 创建NSFileManager对象 NSFileManager包含了文件属性的方法
NSFileManager *fm = [NSFileManager defaultManager];

//2. 通过 NSFileManager 对象 fm 来判断文件是否存在,存在 返回YES 不存在返回NO
BOOL isExist = [fm fileExistsAtPath:dbFilePath];
//- (BOOL)fileExistsAtPath:(NSString *)path;

//如果不存在 isExist = NO,拷贝工程里的数据库到Documents下
if (!isExist)
{
//拷贝数据库

//获取工程里,数据库的路径,因为我们已在工程中添加了数据库文件,所以我们要从工程里获取路径
NSString *backupDbPath = [[NSBundle mainBundle]
pathForResource:@"shopping"
ofType:@"db"];
//这一步实现数据库的添加,
// 通过NSFileManager 对象的复制属性,把工程中数据库的路径拼接到应用程序的路径上
BOOL cp = [fm copyItemAtPath:backupDbPath toPath:dbFilePath error:nil];
NSLog(@"cp = %d",cp);
//- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
NSLog(@"backupDbPath =%@",backupDbPath);

}
NSLog(@"isExist =%d",isExist);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值