为啥不在swift 3中将database.db从bundle复制到文档目录? [复制]
Posted
技术标签:
【中文标题】为啥不在swift 3中将database.db从bundle复制到文档目录? [复制]【英文标题】:Why does not copy database.db from bundle to document directory in swift 3? [duplicate]为什么不在swift 3中将database.db从bundle复制到文档目录? [复制] 【发布时间】:2016-09-28 09:30:46 【问题描述】:我尝试将我的数据库从捆绑路径复制到目标路径(文档目录)并在 iOS8、Swift3 和 Xcode8 final 中使用此代码>:
let bundlePath = Bundle.main.path(forResource: "cry", ofType: ".db")
print(bundlePath, "\n") //prints the correct path
let destPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let fileManager = FileManager.default
let fullDestPath = URL(fileURLWithPath: destPath).appendingPathComponent("cry.db")
let fullDestPathString = String(describing: fullDestPath)
if fileManager.fileExists(atPath: fullDestPathString)
print("Database file is exist")
print(fileManager.fileExists(atPath: bundlePath!))
else
do
try fileManager.copyItem(atPath: bundlePath!, toPath: fullDestPathString)
catch
print("\n")
print(error)
但是告诉我这个错误:
Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"
我检查了 atPath 和 toPath 是对的,但我不知道... 请帮帮我 谢谢你
【问题讨论】:
与***.com/questions/39659939/… 中的错误相同。使用.path
将 URL 转换为字符串,而不是 String(describing:)
。
atPath 和 toPath 是字符串值。 @MartinR
是的,我知道。这是错误的let fullDestPathString = String(describing: fullDestPath)
,应该是let fullDestPathString = fullDestPath.path
是的,你是对的。
【参考方案1】:
已解决
let bundlePath = Bundle.main.path(forResource: "cry", ofType: ".db")
let destPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let fileManager = FileManager.default
let fullDestPath = URL(fileURLWithPath: destPath).appendingPathComponent("cry.db")
if fileManager.fileExists(atPath: fullDestPath.path)
print("Database file is exist")
print(fileManager.fileExists(atPath: bundlePath!))
else
do
try fileManager.copyItem(atPath: bundlePath!, toPath: fullDestPath.path)
catch
print("\n",error)
我将 .path 添加到我的目标地址,现在可以使用了。
【讨论】:
谢谢你解决了我的问题..以上是关于为啥不在swift 3中将database.db从bundle复制到文档目录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在 Swift 中将对象数组返回给 UIStackView? [复制]
在 Swift 3 中将数据从 JSON 传递到表格视图单元格
textFieldShouldReturn 无法在 swift 3 中将焦点从一个文本字段更改为另一个文本字段
如何在 swift 3 中将图像从服务器加载到 tableView 单元格?