【发布时间】:2015-04-02 22:56:16
【问题描述】:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
self.databasePath = [documentDir stringByAppendingPathComponent:kAppDatabase];
-(void) copyDataBaseIfNotExist
{
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:self.databasePath];
if(success) return;
//This block will run for the first time only
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:kAppDatabase];
// Make a copy of the file in the Documents folder
[fileManager copyItemAtPath:databasePathFromApp toPath:self.databasePath error:nil];
db = [FMDatabase databaseWithPath:self.databasePath];
[self insertDummyData];
NSLog(@"%@ Database path %s ",self.databasePath,__PRETTY_FUNCTION__);
}
以上代码将文件复制到文档文件夹中。现在第一次保存。文件路径是:
811E4F6C-B282-402A-859B-40FA6DBD2B3C/data/Containers/Data/Application/E6F63F62-30F6-4580-BF4D-C16DE2B33292/Documents/AppDatabase.db
第二次访问:
811E4F6C-B282-402A-859B-40FA6DBD2B3C/data/Containers/Data/Application/48771A22-0616-4162-9DF9-8C5CC4AF6D39/Documents/AppDatabase.db
为什么每次都变,不应该一样?
【问题讨论】:
-
你为什么在乎?您应该始终使用
NSSearchPathForDirectoriesInDomains。 -
我想将返回的路径存储在数据库中,以便以后访问它。但文件路径不断变化。有什么解决办法?
-
不要存储完整路径,只存储您附加的部分。
标签: ios objective-c nsfilemanager