从文档文件夹复制到nsbundle app文件夹swift时文件不存在

时间:2016-11-29 14:37:53

标签: ios swift

我正在尝试将xlsx文件从文档文件夹保存到app文件夹。这是代码,但它显示错误:

  

错误Domain = NSCocoaErrorDomain Code = 260“无法打开文件”file1.xlsx“,因为没有这样的文件。” UserInfo = {NSFilePath = file:///private/var/mobile/Containers/Data/Application/8AC91C23-3662-44FF-90EF-20F6A34AF61F/Documents/file1.xlsx,NSUnderlyingError = 0x16169a60 {Error Domain = NSPOSIXErrorDomain Code = 2“没有这样的文件或目录“}}

let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL( documentsUrl, includingPropertiesForKeys: nil, options: [])
let xlsxFiles = directoryContents.filter{ $0.pathExtension == "xlsx" }
let xlsxFileNames = mp3Files.flatMap({$0.URLByDeletingPathExtension?.lastPathComponent})

var fileManager = NSFileManager.defaultManager()

do {
    try fileManager.copyItemAtPath(xlsxFiles[0].absoluteString, toPath: NSBundle.mainBundle().resourcePath! + xlsxFileNames[0] + ".xlsx")
}
catch let error 
{
    print(error)
}

1 个答案:

答案 0 :(得分:2)

你有两个问题。第一个是导致您在问题中发布的错误。

  1. copyItemAtPath的两个参数都需要是完整的文件路径。你的第一个参数只是一个文件名。您需要将文件名附加到其位置的完整路径(类似于您对第二个参数的操作)。
  2. 应用程序包是只读的。您无法将文件复制到应用的捆绑包中。因此,即使您解决了第一个问题,您也会遇到新问题。如果该文件已在您应用的文档文件夹中,为什么要尝试将其复制到该文件夹​​?