我有一个跨平台的解决方案(iOS和Android),它有一个共同的共享项目,我尝试从中加载数据库文件。
我尝试检索文件夹路径,如下所示:
`Path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
`
Path = System.IO.Path.Combine (Path, "database.db");
但是文件在结果路径中不存在。
我将数据库文件拖放到iOS项目以及共享项目中,但它似乎不起作用。
在iOS中,可以使用以下方法完成相同的操作:
[[NSBundle mainBundle] pathForResource:"database" ofType:"db"]
如果有可能,我如何为共享课程执行此操作?
答案 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/