我非常渴望在我的项目中寻找文件..
我有一个文件:Database.sqlite3在支持带有Interface.plist等的文件中。
此代码找到plist但没有数据库:
let bundle = NSBundle.mainBundle()
let envsPListPath = bundle.pathForResource("Interface", ofType:"plist")
let environments = NSDictionary(contentsOfFile: envsPListPath!)
我怎样才能获得数据库文件的路径?我确实尝试了很多解决方案,但对于移动中的文档而不是项目目录。
答案 0 :(得分:0)
试试这个:
let strDbPath = NSBundle.mainBundle().pathForResource("Database", ofType:"sqlite")
通过这个,你可以根据你的要求获得你可以访问的路径后你的sqlite路径的完整路径 通常被复制到文档目录中以进行进一步的操作
也可以通过这种方式访问
class func copyFile(fileName: NSString) {
let dbPath: String = getPath(fileName as String)
let fileManager = NSFileManager.defaultManager()
if !fileManager.fileExistsAtPath(dbPath) {
let documentsURL = NSBundle.mainBundle().resourceURL
let fromPath = documentsURL!.URLByAppendingPathComponent(fileName as String)
var error : NSError?
do {
try fileManager.copyItemAtPath(fromPath.path!, toPath: dbPath)
} catch let error1 as NSError {
error = error1
}
let alert: UIAlertView = UIAlertView()
if (error != nil) {
alert.title = "Error Occured"
alert.message = error?.localizedDescription
} else {
alert.title = "Successfully Copy"
alert.message = "Your database copy successfully"
}
alert.delegate = nil
alert.addButtonWithTitle("Ok")
alert.show()
}
}
您可以在函数中传递文件名(Database.sqlite3)
有关如何在swift中使用sqlite的完整演示,请参阅此站点:Sqlite demo swift
在您的代码中,如果您尝试使用示例代码获取db文件,那么当您尝试从sqlite3文件中检索NSDictionary时,它会给您错误
plist文件存储在NSDictionary结构中,以便代码正确执行