无法从Swift中的bundle中复制文档中的文本

时间:2015-03-19 17:33:06

标签: ios swift nsbundle

我是iOS开发的新手。我在我的应用程序包中添加了一个文件“name.txt”,我正在尝试将其复制到文档目录中。但我不知道我在哪里弄错了。该文件未显示在文档目录中。我包含了代码。任何人都可以帮忙吗?

  func copyFile()
  {
  let dirPaths =  NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask, true)
    let docsDir = dirPaths[0] as String
    var error:NSError?

    var fileMgr = NSFileManager.defaultManager()

    if let path = NSBundle.mainBundle().pathForResource("name", ofType:"txt") {
        println(path)
        if fileMgr.copyItemAtPath(path, toPath: docsDir, error: &error) == true{
            println("success")
        }
        else{
            println("failed")
            println(error?.localizedDescription)
        }
    }

    if let files = fileMgr.contentsOfDirectoryAtPath(docsDir, error: &error)
    {
        for filename in files{
            println(filename)
        }
    }
}

1 个答案:

答案 0 :(得分:0)

关于toPath copyItemAtPath()的文档说:

  

放置srcPath副本的路径。此路径必须包含新位置中的文件或目录的名称。此参数不得为零。

因此,您需要确保将文件名附加到docsDir

let destPath = (docsDir as NSString).stringByAppendingPathComponent("/name.txt")

或类似的东西。