我想使用xamarin android C#在android中实现备份和还原数据库。 我的数据库是Sqlite,我想将db备份到SdCard。 有人可以帮助我吗? 下面的代码是一些我的代码
string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
public bool createDataBase()
{
try
{
using (var connection = new SQLiteConnection(System.IO.Path.Combine(folder, "Plans.db")))
{
connection.CreateTable<Plan>();
return true;
}
}
catch (SQLiteException ex)
{
Log.Info("SQLiteEx", ex.Message);
return false;
}
}
答案 0 :(得分:0)
使用以下代码
var dbFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var dbFile = System.IO.Path.Combine(dbFolder, "my_test.sqlite");
var filename = System.IO.Path.Combine(GetLoggerDir(), "my_test.sqlite");
FileStream readStream = new FileStream(dbFile, FileMode.OpenOrCreate, FileAccess.Read);
FileStream writeStream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
ReadWriteStream(readStream, writeStream);
GetLoggerDir()方法
public static string GetLoggerDir()
{
Java.IO.File dataDir = new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory + "/" + "YourFolderName" + "/");
if (!dataDir.Exists())
dataDir.Mkdirs();
return dataDir.ToString();
}
在清单文件中添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
还添加运行时权限
将在设备sdCard中创建一个名称为“ YourFolderName”的文件夹。首先将该文件复制到设备的任何其他文件夹中,然后我们可以将其复制到PC中以实现特定目的。 我希望它能完美运行。