Восстановление базы данных sqlite в xamarin forms или xamarin android

#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 Я обновил свой вопрос и прикрепил к нему свою функцию восстановления, пожалуйста, посмотрите на это, можете ли вы сказать мне ошибку?