在我的Xamarin android应用程序上,我使用“ System.Environment.SpecialFolder.Personal”创建数据库路径。 我有一个现有的sqlite数据库。我在项目中的哪个位置以及具有哪些属性,必须包括要在peronal文件夹中使用的数据库?
答案 0 :(得分:0)
您可以使用Xamarin.Essentials
来访问只读的包/资产资源并复制它,而不必使用本机平台代码,或者如果您在Xamarin.Android项目中进行编码,则可以直接使用{{1 }}的资产
因此,假设您的Android Assets文件夹中有一个数据库:
Android.Content
Assets
db.sqlite
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