【问题标题】:File not exists while copy from document folder to nsbundle app folder swift从文档文件夹快速复制到nsbundle app文件夹时文件不存在
【发布时间】:2017-04-13 14:35:00
【问题描述】:

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

Error 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 {错误域=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)
}

【问题讨论】:

  • 在设备上,应用程序包是只读的。为什么你认为文件应该在捆绑包中?
  • 在模拟器上运行并手动检查文件是否存在。
  • @PhillipMills 他必须将该文件放入创建项目的捆绑文件中。
  • @meet 将文件添加到项目并不能确保它已添加到包中,您还需要将文件添加到目标。
  • @PhillipMills github.com/renebigot/XlsxReaderWriter 使用这个从包中打开文件的库,这就是这个库如何找到 excel 文件的路径 NSBundle.mainBundle().pathForResource("testWorkbook", ofType: "xlsx")知道我该怎么做吗?

标签: ios swift


【解决方案1】:

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

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

【讨论】:

  • po mp3Files[0].absoluteString file:///private/var/mobile/Containers/Data/Application/3CB10230-8A89-4F9C-A99E-F55630435424/Documents/Contacttoexcelpro.xlsx 这是第三方库如何读取 xlsx 文件 var documentPath: String = NSBundle.mainBundle().pathForResource("testWorkbook", ofType: "xlsx") var spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(documentPath) 我想从此路径打开文件 "file:///private/var/mobile/Containers/Data/Application/3CB10230-8A89-4F9C-A99E-F55630435424/Documents/Contacttoexcelpro.xlsx" 但它不工作
  • 请编辑您的问题以包含该信息。请务必将代码格式化为代码,以便我们阅读。
猜你喜欢
  • 2011-07-03
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 2013-09-03
  • 1970-01-01
相关资源
最近更新 更多