SpecialFolder。个人现有的sqlite数据库

时间:2019-03-06 20:45:13

标签: c# android sqlite xamarin

在我的Xamarin android应用程序上,我使用“ System.Environment.SpecialFolder.Personal”创建数据库路径。 我有一个现有的sqlite数据库。我在项目中的哪个位置以及具有哪些属性,必须包括要在peronal文件夹中使用的数据库?

1 个答案:

答案 0 :(得分:0)

您可以使用Xamarin.Essentials来访问只读的包/资产资源并复制它,而不必使用本机平台代码,或者如果您在Xamarin.Android项目中进行编码,则可以直接使用{{1 }}的资产

因此,假设您的Android Assets文件夹中有一个数据库:

Android.Content

Xamarin Essentials / NetStd2.0代码示例:

Assets
   db.sqlite

Xamarin Android代码示例(直接使用var copyToLocationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "db.sqlite"); if (!File.Exists(copyToLocationPath)) { using (var assetStream = await Xamarin.Essentials.FileSystem.OpenAppPackageFileAsync("db.sqlite")) using (var fileStream = new FileStream(copyToLocationPath, FileMode.Create, FileAccess.Write)) { await assetStream.CopyToAsync(fileStream); } } var connection = new SqliteConnection(copyToLocationPath); ):

Assets