无法打开用户库中先前应用版本创建的文件
Posted
技术标签:
【中文标题】无法打开用户库中先前应用版本创建的文件【英文标题】:Cannot open file created by previous app version in the user library 【发布时间】:2017-08-15 08:32:09 【问题描述】:奇怪的是找不到有关此错误的太多信息。我正在更新一个非常旧的 ios 应用程序,该应用程序将用户文件存储在用户库中的一个名为“Private Documents”的子目录中。
我可以列出创建好的文件,但我无法读取它们,并收到错误“文件“1.xxx”无法打开,因为您没有查看权限。”
let urls = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)
guard let documentDirectory = urls.first else
print("Cannot find old lib documents directory")
return
guard let files = try? FileManager.default.contentsOfDirectory(at: documentDirectory.appendingPathComponent("Private Documents", isDirectory: true), includingPropertiesForKeys: nil, options: FileManager.DirectoryEnumerationOptions.skipsHiddenFiles) else
print("Cannot load old lib files directory")
return
Files 现在在此目录中正确包含一组文件 URL。
但是,如果我调用 FileManager.default.isReadableFile,此函数总是返回 true,但随后尝试将文件复制到 Data(contentsOf: file) 对象中失败并出现上述错误。
帮助表示赞赏!
更新:检查了应用签名等,将当前 App Store 版本与 TestFlight 版本进行比较我遇到了同样的问题。
【问题讨论】:
尝试清理项目并清除派生数据。如果还是不行,可以尝试在构建设置中将编译器改成默认编译器。 尝试了这两种方法,通常当看到这个错误时,人们抱怨他们的实际应用程序没有通过 Xcode 运行,因为他们更改了可执行文件等:( 【参考方案1】:好吧好吧...问题是我正在阅读的文件实际上是目录(包)。因此,所有权限、所有权、isReadable/isWritable 都是正确的。
很遗憾,Apple 的错误没有说明这是问题所在!
【讨论】:
以上是关于无法打开用户库中先前应用版本创建的文件的主要内容,如果未能解决你的问题,请参考以下文章
Access 2013 - 无法打开使用以前版本的应用程序创建的数据库
无法删除 SharePoint 库中既未签出也未打开进行编辑的文档?