3

我重写了一个曾经在 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 位置访问数据。任何帮助都会很棒。

4

3 回答 3

2

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

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

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

于 2013-04-09T21:36:22.590 回答
1

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

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

有关此 Xcode 管理器功能,请参阅 Apple文档

于 2013-04-10T18:15:58.820 回答
1

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

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
于 2013-04-10T18:44:56.593 回答