【问题标题】:Titanium to Xamarin DB ExportTitanium 到 Xamarin DB 导出
【发布时间】:2013-04-09 21:23:35
【问题描述】:

我重写了一个以前在 Titanium 中的应用程序,需要从旧应用程序访问数据库。它们具有相同的应用标识符和所有内容。

在 Titanium 中,应用程序数据库的存储方式如下:

Ti.Database.install('/db/dbName.db', 'dbName');

在 Xamarin 中我这样存储它:

string documents = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
string db = Path.Combine (documents, "mydb.db");
SqlConnection.CreateFile (db);

我需要能够从 Titanium 位置访问数据。任何帮助都会很棒。

【问题讨论】:

    标签: ios xamarin.ios titanium


    【解决方案1】:

    您能否在模拟器中运行您的 Titanium 应用程序并检查它在何处创建 db 文件?那应该给你一些指导。

    我建议尝试 Environment.SpecialFolder.MyDocuments + "/db/dbName.db",但您可能需要进行一些试验和错误。

    Titanium docs 描述了他们为各种版本的框架存储 db 文件的位置

    【讨论】:

    • 我实际上试过这条路。看起来不是那个。我也试过Personal 一个
    • 我认为您将不得不在 sim(或设备)上四处寻找才能弄清楚实际路径是什么
    • 这是 Titanium 所说的,但我不知道如何从 Xamarin 到达这条路径:Titanium 说:var db1 = Ti.Database.install('mydb1', 'mydb1Installed'); The file is copied to the default database location with a file extension of sql. On simulator /Users/user_name/Library/Application Support/iPhone Simulator/ios_version/Applications/apple_app_id/Library/Private Documents/mydb1Installed.sql (Titanium 1.8.0.1) On device /Applications/apple_app_id/Library/Private Documents/mydb1Installed.sql (Titanium 1.8.0.1)
    • 以上内容在这里找到:docs.appcelerator.com/titanium/latest/#!/api/…
    • 我相信这就是 Personal 映射到的。由于您在 Titanium 代码中使用了“/db/”,您是否查看过 Personal 中的“db”子文件夹?
    【解决方案2】:

    您可以使用 Xcode 的 Organizer 查看您设备上的所有应用程序。

    然后您可以选择您的应用程序并查看其所有文件,您甚至可以通过这种方式下载所有应用程序数据。

    有关此 Xcode 管理器功能,请联系 Apple documentation

    【讨论】:

      【解决方案3】:

      我必须查看 Titanium 文档 (http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Database-method-install),正如@poupou 指出的那样,我可以在浏览 iOS 模拟器应用程序包的同时找到它。

      这篇来自 Xamarin 的文章允许我找到 Library 文件夹,然后导航到其中的 Private Documents 文件夹(由 Titanium 创建)。 http://docs.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system

      请记住,所有内容都区分大小写。

      这基本上是我的做法:

      var documents = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
      var library = Path.Combine (documents, "..", "Library");
      var legacyData = Path.Combine (library, "Private Documents", "legacyDB.sql"); // Titanium adds the .sql to the end of file names
      

      【讨论】:

      • 我选择了@Jason 的答案,因为他与 Titanium 文档的链接帮助最大。
      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 2015-06-12
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      相关资源
      最近更新 更多