首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何捆绑域文件

如何捆绑域文件
EN

Stack Overflow用户
提问于 2018-03-15 10:54:41
回答 1查看 753关注 0票数 0

我正在学习如何捆绑一个领域文件的领域文档。我已经成功地将所有必要的数据加载到我的加密文件中,但我似乎无法压缩该文件并将其移到其他地方。

代码

代码语言:javascript
运行
复制
    // AppDelegate
    fileprivate func compactRealm() {
        if let realmPath = Realm.Configuration.defaultConfiguration.fileURL {
            let destination = realmPath.deletingLastPathComponent().appendingPathComponent("compact.realm")
            if FileManager.default.fileExists(atPath: realmPath.path) {
                do {
//                    let encryption = Constants.key.data(using: String.Encoding.utf8)
                    try Realm().writeCopy(toFile: destination)
                    print("File normally compressed !")

                } catch {
                    fatalError(error.localizedDescription)
                }
            } else {
                print("Realm file does not exist")
//                fatalError()
            }

        }

    } 

结果

“错误Domain=io.realm Code=2”无法打开路径Code=2处的领域,而不是领域文件。NSFilePath=/var/mobile/Containers/Data/Application/B4D487F8-5AEC-4906-B989-7DB953095A35/Documents/default.realm,{Error Code=2,UserInfo= Underlying=Not一个领域文件,NSLocalizedDescription=Unable打开一个领域路径'/var/mobile/Containers/Data/Application/B4D487F8-5AEC-4906-B989-7DB953095A35/Documents/default.realm':而不是一个领域文件。}

我已经检查过了:领域文件确实存在!

顺便说一句,我对未加密的文件尝试过相同的代码,所以我不知道它对加密的领域文件不起作用!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-18 14:44:50

您的行try Realm().writeCopy(toFile: destination)似乎基本上打开了默认的领域文件,但是没有解密它所需的密钥(我假设您已经在这里加密了它,然后尝试编写一个紧凑的副本)。

王国抱怨说文件无法打开,因为它不是一个领域文件(不是,它是一个加扰的版本)。

使用适当的加密密钥(try Realm(configuration: config)或类似的加密密钥)打开领域,然后尝试编写副本。

资料来源

领域文档-加密

领域文档-压缩领域

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49297592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档