找不到我的文件
Cannot find my file
我已将该文件复制到项目中,我是 swift 中编码的新手,但我假设该文件将与项目中的所有资源文件一起部署到我的设备上。这是我的代码,无法找到文件或无法从包中复制
if let dirs = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .AllDomainsMask, true) as ? [String] {
let dir = dirs[0] //documents directory
let path = dir.stringByAppendingPathComponent(file)
var checkValidation = NSFileManager.defaultManager()
if checkValidation.fileExistsAtPath(path) {
println("FILE AVAILABLE")
} else {
println("FILE NOT AVAILABLE")
// Copy the file from the Bundle and write it to the Device:
let pathToBundledDB = NSBundle.mainBundle().pathForResource("pcQuestionDBA", ofType: "txt")
var error: NSError ?
if NSFileManager.defaultManager().copyItemAtPath(pathToBundledDB!, toPath: dir, error: & error) {
}
我知道我一定是在做一些根本性的错误,任何建议将不胜感激 - 谢谢
一个更新:
我已经将该文件复制到项目文件夹中,但是,我删除了该文件并尝试重新复制它,但我收到一条错误消息,指出该文件已存在于该文件夹中。我想我已经将 Xcode 与我尝试修复错误和找到文件的多个动作和变体混淆了。我重命名了文件并从头开始,现在一切正常。非常感谢您的快速回复,这让我最终找到了解决方案 - 干杯
问题是您应该传递文件路径,但您传递了目录路径。
这样试试:
NSFileManager.defaultManager().copyItemAtPath(pathToBundledDB!, toPath: path, error: &error)
我已将该文件复制到项目中,我是 swift 中编码的新手,但我假设该文件将与项目中的所有资源文件一起部署到我的设备上。这是我的代码,无法找到文件或无法从包中复制
if let dirs = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .AllDomainsMask, true) as ? [String] {
let dir = dirs[0] //documents directory
let path = dir.stringByAppendingPathComponent(file)
var checkValidation = NSFileManager.defaultManager()
if checkValidation.fileExistsAtPath(path) {
println("FILE AVAILABLE")
} else {
println("FILE NOT AVAILABLE")
// Copy the file from the Bundle and write it to the Device:
let pathToBundledDB = NSBundle.mainBundle().pathForResource("pcQuestionDBA", ofType: "txt")
var error: NSError ?
if NSFileManager.defaultManager().copyItemAtPath(pathToBundledDB!, toPath: dir, error: & error) {
}
我知道我一定是在做一些根本性的错误,任何建议将不胜感激 - 谢谢
一个更新: 我已经将该文件复制到项目文件夹中,但是,我删除了该文件并尝试重新复制它,但我收到一条错误消息,指出该文件已存在于该文件夹中。我想我已经将 Xcode 与我尝试修复错误和找到文件的多个动作和变体混淆了。我重命名了文件并从头开始,现在一切正常。非常感谢您的快速回复,这让我最终找到了解决方案 - 干杯
问题是您应该传递文件路径,但您传递了目录路径。
这样试试:
NSFileManager.defaultManager().copyItemAtPath(pathToBundledDB!, toPath: path, error: &error)