首页 文章

如何找到我的领域文件?

提问于
浏览
200

我已经通过领域创建了一个DB,我无法找到该文件,因为我的操作系统(Yosemite)在/ private / var / mobile中没有移动文件夹 .

我应该如何访问我的领域以在浏览器中运行?

Cross从谷歌小组发布

20 回答

  • 406

    首先,我承认这是一个Android线程,但它是这个问题的第一个搜索结果 .

    要在Realm Browser中打开最近创建的Xcode Simulator Realm数据库,您可以在Automator中使用此脚本或在终端中输入所有内容 . 通过使用Automator,我可以一键访问我当前的领域 .

    cd ~/Library/Developer/CoreSimulator/Devices/
        cd `ls -t | head -n 1`/data/Containers/Data/Application
        cd `ls -t | head -n 1`/Documents    
        open -a 'Realm Browser' ./default.realm
    

    安装Realm Browser . 在Automator中,单击New,选择Run Shell Script,粘贴代码,更改Realm Db名称,单击Run to test,将文件保存在方便快速点击访问的位置 .

    我不知道我第一次在哪里找到了这个提示,但这个帖子提醒了我过去如何访问我的实时数据 .

  • 9

    我通过在终端发出此命令找到了我的领域文件: sudo find / -name "*.realm" .

    希望这可以帮助!

  • 110

    在斯威夫特

    func getFilePath() -> URL? {
        let realm = try! Realm()
        return realm.configuration.fileURL
    }
    
  • 2

    Objective-C - [RLMRealmConfiguration defaultConfiguration].fileURL

    NSLog(@"%@",[RLMRealmConfiguration defaultConfiguration].fileURL);
    

    Eg- / Users /“Your-user-name”/ Library / Developer / CoreSimulator / Devices / E58645FF-90DE-434D-B2EB-FA145EB6F2EA / data / Containers / Data / Application / E427BD21-2CB1-4F64-9ADF-8742FF731209 /文件/

    这是您可以运行的最简单的命令,以获取.realm文件的路径 . 完成所有读写操作后,您将看到.realm文件 .

    要么

    您可以开源openSim,替代simpholders直接从菜单栏访问您应用的文档目录

  • 1

    仅适用于您的应用程序在iOS模拟器上

    输入

    console.log (Realm.defaultPath)
    

    在代码中例如:App.js

  • 0

    正确的(lldb)命令是: Realm.Configuration.defaultConfiguration.path .

  • 10

    我更进了一步 . 我创建了一个名为 RealmFunctions 的swift文件,在其中,我创建了这个函数

    import RealmSwift
        func realmAndPath() -> Realm {
            if dev {
                // location of my desktop
                return try! Realm(path: "/Users/slynch/Desktop/TestRealm.realm")
            } else {
                return try! Realm()
            }
        }
    

    现在在我的主视图控制器中,我有一个名为dev的全局布尔变量

    var dev: Bool = true // when in development mode
    var dev: Bool = false // when I want to run on my device or upload to app stor.
    

    现在,我在代码中所要做的就是

    let realm = realmAndPath()
    

    因此,在开发模式下,我可以在桌面上找到我的领域数据库,并可以在Realm Browser中打开 .

  • 0

    对于那些使用React Native并使用默认领域的人:

    Realm.defaultPath

  • 2

    我做的是使用

    let realm = Realm(path: "/Users/me/Desktop/TestRealm.realm")
    

    然后它会在我的桌面上以完整视图创建,我可以双击以启动Realm Browser . 稍后,我可以删除参数,并在我满意所有工作都按预期工作时让它使用默认位置 .

  • 2

    以上答案错过了在Android平台中找到领域文件的方法,并且相信我这样可以节省您的时间,我们通常会浪费其他方法来获取领域文件 . 那么让我们开始......

    首先在android studio中打开“Device File Explorer”(查看 - >工具Windows - >设备文件浏览器 .

    这将打开您的设备资源管理器 .

    enter image description here

    现在打开 data -> data -> (your_app_package_name) -> files -> default.realm

    default.realm 是我们在这里的文件 . 现在将此文件保存在您的位置并从realm_browser访问该文件,您将获得您的数据库 .

    NOTE: Mentioned approach is tested on non-rooted phone(one+3).

  • 10

    Swift 2.3解决方案

    更轻松的解决方案,不会破坏Realm更新

    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        print("App Path: \(dirPaths)")
    

    .realm文件应该在“Documents”中

  • 5

    查找领域文件

    对于Android

    How to view my Realm file in the Realm Browser?

    适用于iOS

    如果您的应用程序在设备上

    确保您的设备已连接并转到Xcode菜单 Window > Devices (⌘⇧2)中的设备窗口 . 在那里,您可以从已安装的应用程序列表中选择具有调试权限的设备和应用程序 .

    选择应用程序后,转到表格视图底部工具栏中的齿轮,然后选择 “Download Container…“ . 在那里,您可以将文件从文档位置拉到Mac . 它将保存为xcappdata包 .

    当您在Finder中打开保存它的本地路径时,您可以通过在查找器的上下文菜单中选择 “Show Package Contents” 来选择文件 . 将打开一个新的查找器窗口,您可以在以下路径中找到您的Realm(例如):AppData / Documents / default.realm(目录'/private/var/mobile'是iOS在设备文件系统上使用的路径 .

    如果您的应用程序在模拟器上

    转到您用户的目录:

    /Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-uuid>/data/Containers/Data/Application/<application-uuid>/Documents/default.realm

    获取默认域的当前路径的最简单方法可能是暂停模拟器并在LLDB控制台中输入以下内容:

    Objective-C
    (lldb) po [RLMRealmConfiguration defaultConfiguration].fileURL

    Swift using Realm Objective-C
    (lldb) po RLMRealmConfiguration.defaultConfiguration().fileURL

    Swift using Realm Swift
    (lldb) po Realm.Configuration.defaultConfiguration.fileURL

    或者,如果您手头有 RLMRealm 实例,则可以使用:
    (lldb) po myRealm.configuration.fileURL

    然后只需复制此路径,打开终端,然后键入 open [Pasted path here]

    NOTE: 某些路径中有一个空格,因此请确保在空格之前使用""来转义它

    帮助工具SimPholders

    这可能是在模拟器中查找应用程序文件的最快方法 . 安装SimPholders . 这将允许您直接从菜单栏访问应用程序的文档目录 .

    Note 有人提到SimPholders已将他们带到错误的模拟器应用程序文件夹,如果是这种情况,请按照上述步骤打印您的领域路径,打印出您的领域 .

  • 4

    在工具 - > Android设备监视器下

    在文件资源管理器下 . 搜索应用程序 . 该文件在数据/数据下 .

  • 15

    这是一个简单的解决方案..我搞砸了一段时间 . 我应该指出,这是使用Android Studio和AVD Emulator的一组特定指令 .

    1)启动模拟器并运行您的应用程序 .

    2)当应用程序仍在运行时,打开Android设备监视器 . (它位于AVD和SDK管理器图标旁边的工具栏中)

    3)单击设备监视器中的文件资源管理器选项卡 . 应该有很多文件夹 .

    4)导航以下路径:数据>数据>您的包名称>文件> Default.Realm(或您命名的任何内容)

    防爆 . 如果您正在使用其中一个领域示例项目,那么路径将类似于Data> Data> io.realm.examples.realmgridview> files> default.realm

    5)突出显示文件,单击右上方区域中的“软盘”图标“从设备中提取文件”

    6)将它保存到您想要和完成的任何地方 .

  • 20

    更新了最新领域的答案:

    对于Android:

    checkout stetho和https://github.com/uPhyca/stetho-realm视频教程:https://www.youtube.com/watch?v=9pFJz5VexRw

    对于IOS(斯威夫特)

    或者:

    debugPrint("Path to realm file: " + realm.configuration.fileURL!.absoluteString)
    

    Step 1: 在某处有一个名为dev的常量 . 我们说Constant文件

    public class Constants {
    
        public static var dev: Bool = true
    
    }
    

    Step 2: 创建另一个名为RealmFunctions.swift的类

    import RealmSwift
    
    
    func realmAndPath() -> Realm {
        if Constants.dev {
            // location of my desktop
            let testRealmURL = NSURL(fileURLWithPath: "/Users/#####/Desktop/TestRealm.realm")
            return try! Realm(fileURL: testRealmURL)
        } else {
            return try! Realm()
        }
    }
    

    Step 3: 终于在你的视图控制器中:

    let realm = realmAndPath()
    

    感谢斯图尔特林奇的原始答案

  • 0

    我找到了最简单的iOS / macOS方式(适用于swift 3 Xcode 8.3)

    override func viewDidLoad() {
    
       // for swift 2.0 Xcode 7
       print(Realm.Configuration.defaultConfiguration.fileURL!)
    }
    

    然后x代码将记录正确的路径,请检查下面的屏幕 .

    enter image description here

    现在打开 Finder 并按⌘⇧G(命令班次G)并粘贴 Xcode ,登录 Xcode

  • 1

    If you are getting 'Enter Encryption Key' dialog box error:

    我正在使用Swift 2.1与Realm 0.96.2,并在尝试打开数据库文件时收到此错误:

    'default'无法打开 . 它可能是加密的,或者不是兼容的文件格式 . 如果您知道文件已加密,则可以手动输入其加密密钥以将其打开 .

    发现使用预发布版本的Realm Browser 0.96修复了这个问题:

    https://github.com/realm/realm-browser-osx/releases/tag/0.96-prerelease

  • 0

    要获取iOS的数据库路径,最简单的方法是:

    • 在模拟器中启动您的应用程序

    • 在调试器中随时暂停

    • 转到控制台(您有 (lldb) 的位置)并输入: po RLMRealm.defaultRealmPath

    Tada ......你有通往你的领域数据库的路径

  • 3

    模拟器应用程序的一个简单替代方案

    在Finder中创建智能文件夹/搜索 . 提供对所有领域文件的快速轻松的可点击访问 .

    • 在Finder中打开文件夹 /Users/$USER/Library/Developer/CoreSimulator/Devices .

    带终端 open /Users/$USER/Library/Developer/CoreSimulator/Devices

    • 搜索 .realm

    • 更改搜索以仅查看 "Devices" 文件夹 .

    • 将搜索保存到侧边栏(例如,作为领域)

    按日期排序时,这将为您提供最新修改的模拟器 .realm 文件的快速简便的可点击列表 .

  • 1

    Xcode 7的正确lldb命令,Swift 2.2是 po Realm.Configuration.defaultConfiguration.path!

相关问题