Xamarin:资产从(共享项目)加载数据库的路径

时间:2015-04-21 11:40:39

标签: c# ios xamarin

我有一个跨平台的解决方案(iOS和Android),它有一个共同的共享项目,我尝试从中加载数据库文件。

我尝试检索文件夹路径,如下所示:

`Path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
`

Path = System.IO.Path.Combine (Path, "database.db");

但是文件在结果路径中不存在。

我将数据库文件拖放到iOS项目以及共享项目中,但它似乎不起作用。

在iOS中,可以使用以下方法完成相同的操作:

[[NSBundle mainBundle] pathForResource:"database" ofType:"db"]

如果有可能,我如何为共享课程执行此操作?

1 个答案:

答案 0 :(得分:1)

“Environment.GetFolderPath(Environment.SpecialFolder.Personal);”根本没有获得您的应用资源。 如果您需要用户修改数据,您应该将数据库(在您的应用程序资源中)复制到该文件夹​​(Environment.GetFolderPath(Environment.SpecialFolder.Personal)),这将是要在SQLite连接上打开的文件。从那时起,资源文件夹上的db文件将不再有用,因为不允许修改您的应用程序文件。

  

请注意,您只需复制一次文件:即第一次运行应用

也就是说,要在项目中使用您的db文件(或其他文件),您可以添加对该文件的引用(作为链接)并加载它,就像从每个特定平台加载任何资产一样。

有关如何加载资产的详情,请参阅以下链接:

IOS: http://developer.xamarin.com/recipes/ios/general/file_system/load_a_file/

android:http://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/