无法打开用户库中先前应用版本创建的文件

时间:2017-08-15 08:32:10

标签: ios swift swift3 nsfilemanager

奇怪的是找不到有关此错误的更多信息。我正在更新一个非常旧的iOS应用程序,该应用程序将用户文件存储在用户库中,名为“私有文档”的子目录。

我可以列出创建好的文件,但我无法读取它们,并收到错误“文件”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
}

文件现在正确包含此目录中的文件URL数组。

但是,如果我调用FileManager.default.isReadableFile,则此函数始终返回true,但是然后尝试将文件复制到Data(contentsOf:file)对象失败,并出现上述错误。

帮助表示赞赏!

更新:检查应用程序签名等,将当前App Store版本与TestFlight构建进行比较我遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

很好......问题是我正在阅读的文件实际上是目录(包)。因此,所有权限,所有权,isReadable / isWritable都是正确的。

令人遗憾的是Apple错误并未说明问题!