将文件添加到文档目录(或其他地方)?

时间:2010-01-26 11:10:39

标签: iphone directory documents

我想用一个小的sqlite3数据库初始化我的应用程序。我试图将它放在Documents目录中,但有时它会以零大小复制它,有时它根本不复制它。

如何使用充满信息的数据库初始化我的应用程序?

三江源

2 个答案:

答案 0 :(得分:4)

如何将其与您的申请一起复制?
如果您将应用程序与应用程序包内的数据库(作为资源)一起发送,则应将其从资源中复制到文档文件夹(如果不存在)并在其中使用它:

NSFileManager *fileManager = [[NSFileManager defaultManager] autorelease];
BOOL exists = [fileManager fileExistsAtPath:databasePath];

if (exists) {
    return;
}

NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];

答案 1 :(得分:1)

谢谢弗拉基米尔,

这很有帮助。我做了一些改动,这是最终的结果很有效:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *databasePath = @"personalLMS.s3db";

NSFileManager *fileManager = [[NSFileManager defaultManager] autorelease];

NSString * databasePathFromApp = [[NSBundle mainBundle] pathForResource:@"personalLMS"  ofType:@"s3db"];

[fileManager copyItemAtPath:databasePathFromApp toPath:[documentsDirectory stringByAppendingPathComponent:databasePath] error:nil];