#c# #sqlite #xamarin.forms #xamarin.android
#c# #sqlite #xamarin.forms #xamarin.android
Вопрос:
Я внедрил резервную базу данных в xamarin, и она копирует мою базу данных на sdcard. Приведенный ниже код показывает путь к файлу резервной копии:
"/sdcard/MyTaskDatabase"
Я хочу реализовать восстановление резервной копии. И для этого я хочу скопировать файл резервной копии по указанному ниже пути (путь к локальной базе данных):
database = new TodoItemDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "TodoSQLite.db3"));
я знаю, что я должен использовать эту функцию:
System.IO.File.Copy(sourcePath, destinationPath, true);
но я не могу получить исходный путь и DestinationPath.
Пожалуйста, помогите.
У меня есть функция для восстановления базы данных, но она не работает и не выдает ошибок.
public void CopyAndRestore(string sourcePath)
{
var dbFileName = "TodoSQLite.db3";
TodoItemDatabase yourSQliteRepository = new TodoItemDatabase(GetLocalFilePath(dbFileName));
string destinationPath = GetLocalFilePath(dbFileName);
yourSQliteRepository.DeleteAllDatabase();
yourSQliteRepository.CloseDb();
System.IO.File.Copy(sourcePath, destinationPath, true);
}
Комментарии:
1. вы имеете в виду, что вы буквально не знаете, какие пути использовать для этих двух аргументов? Или что вы пробовали это и получаете сообщение об ошибке или оно просто не работает?
2. @Jason Я попробовал, и это не сработало, вы можете это исправить?
3. это не работает и не генерирует никаких ошибок? Как вы проверяете, работает это или нет? Вы уверены, что закрываете все открытые SQL-соединения перед перезаписью существующего файла БД?
4. @Jason Я обновил свой вопрос и прикрепил к нему свою функцию восстановления, пожалуйста, посмотрите на это, можете ли вы сказать мне ошибку?