当前位置: 首页 > 知识库问答 >
问题:

无法将文件从捆绑复制到iOS中的文档目录

赫连泰宁
2023-03-14
let bundlePath = NSBundle.mainBundle().pathForResource("information", ofType: ".png")
print(bundlePath, "\n") //prints the correct path
let destPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!
let fileManager = NSFileManager.defaultManager()
let fullDestPath = NSURL(fileURLWithPath: destPath).URLByAppendingPathComponent("information.png")
let fullDestPathString = String(fullDestPath)
print(fileManager.fileExistsAtPath(bundlePath!)) // prints true

do{
try fileManager.copyItemAtPath(bundlePath!, toPath: fullDestPathString)
}catch{
    print("\n")
    print(error)
}

共有1个答案

郗鹏
2023-03-14

问题就出在这一行:

let fullDestPathString = String(fullDestPath)

应该是:

let fullDestPathString = fullDestPath.path

看看这个错误。问题是目的地。请注意文件:///。您的代码无法正确地将URL转换为文件路径。您需要使用nsurlpath属性以字符串形式获取路径。

 类似资料:
  • 我已经在应用程序中添加了一个sqlite文件,并试图将其从bundle复制到documents目录。我还将sqlite添加到了target应用程序中。下面是我用来复制文件的代码: 的代码: Error domain=nscocoaerrordomain code=4“文件”myapp.sqlite“不存在。”userInfo={nsSourceFilePatherRokey=/users/hari

  • 我有一个从Excel生成文档的代码。一方面,我有一个需要填充标记的文档,以生成与Excel中的行一样多的文档。另一方面,我有一个Excel,它在一行中有这个标记,并在Excel的每一行中填写Word文档中要填写的信息。 代码在只有文本和标签的普通文档中工作正常,但是当文档包含填充有文本的表时,它就不工作了... 这些是Excel和文档的一些图像... 带标签的Excel 普通文件 带表格的文件 这

  • 我正在将我的应用程序从XCode7和iOS9.x移植到XCode8和iOS10。我正在为处理这些文件而苦苦挣扎。 错误域=nscocoaErrorDomain代码=4“”xxxx.pdf“无法移动到”tmp“,因为前者不存在,或者包含后者的文件夹不存在。”userInfo={nsSourceFilePatherRokey=/file:/users/xxx/Library/Developer/Cor

  • 问题内容: 我正在Swift中构建一个简单的程序,它应该将具有特定扩展名的文件复制到另一个文件夹中。如果该文件夹存在,程序将只将它们复制到该文件夹​​中;如果该文件夹不存在,则程序必须先将其复制。 运行此代码将正确识别MTS文件,但会导致“添加失败…”,我在做什么错? 问题答案: 从文档中: 放置的副本的路径。此路径必须在新位置包含文件或目录的名称。… 您必须将文件名附加到调用的目标目录中 (为S

  • 我有一个图像缓存在我的应用程序文档文件夹。我想把它复制到文档文件夹里。到目前为止,我知道我可以加载我的图像作为UIIimage,然后将它转换为数据并保存在我的目标路径中。但有没有比这更好的办法呢?就像我不想在UIIimage中转换我的图像,然后再将其转换为数据并写入。 我的png代码是:

  • 问题内容: 我想在应用程序的第一次运行中将一个很大的目录从我的应用程序的Assets文件夹复制到data文件夹。我怎么做?我已经尝试过一些示例,但是没有用,所以我什么都没有。我的目标是Android 4.2。 谢谢,Yannik 问题答案: 尝试使用您的Application实例的以下代码(您应该在清单中编写该类):该代码将资产/文件文件夹的内容复制到应用程序的缓存文件夹中(您可以将其他路径放在c