[英]VS2017 Android and SQLite
也许是一个愚蠢的问题,但我在任何地方都找不到答案!
我的应用程序中有一个sqlite预先填充的数据库,当用户安装该应用程序时,我需要将其复制到设备上,我在VS2017的Assets文件夹中具有该数据库,并将其标记为“嵌入式资源”,但我似乎无法找到正确的路径来访问它。
谁能指出我正确的方向? 我是在这里的正确道路上还是在某处需要发生其他魔术?
谢谢院长
首先在设备外部存储中创建工作目录
public void createDirectory()
{
bool isExists=false;
string folderExternal;
try
{
// folder path
folderExternal = "/mnt/sdcard/Sample";
// checking folder available or not
isExists= System.IO.Directory.Exists(folderExternal);
// if not create the folder
if(!isExists)
System.IO.Directory.CreateDirectory(folderExternal);
folderExternal = "/mnt/sdcard/Sample/WorkingDB";
isExists = System.IO.Directory.Exists(folderExternal);
if(!isExists)
System.IO.Directory.CreateDirectory(folderExternal);
}
}
然后从资产文件夹复制数据库
public void CopyDBFileFromAssetFolder()
{
try{
//checking file exist in location or no
if (!File.Exists (Constants.DatabasebFilePath))
{
//display progress bar or loader animation
// Java thread is used for creating or copying
// database file because this will not make the program non responsive
new Java.Lang.Thread(() =>
{
// calling data from Asset folder
using (var asset = Assets.Open ("Empty_DB.db"))
using (var dest = File.Create ( AppGlobal.DatabasebFilePath))
{
// copying database from Asset folder to external storage device
asset.CopyTo (dest);
}
RunOnUiThread(() => onSuccessfulLogin());
}).Start();
}
} catch (System.Exception ex) {
//handle exception
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.