2010-01-26 134 views
2

我想用一個小的sqlite3數據庫初始化我的應用程序。我試圖把它放在Documents目錄中,但有時它會將它複製爲零大小,有時它根本不會複製它。將文件添加到文檔目錄(或其他地方)?

sholud我如何用一個充滿信息的數據庫初始化我的應用程序?

Thankyou

回答

4

如何將它與您的應用程序一起復制?
如果運輸您的使用DB的應用程序包內的應用程序(如資源),你應該從資源複製到文件夾,如果它不存在,並且有與它的工作:

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

謝謝弗拉基米爾,

這很有幫助。我做了一些改變,這裏最後的結果很好用:

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]; 
相關問題