Я занимаюсь разработкой приложения на C # с бэкэндом sqlite. В моем приложении у меня есть кнопка для очистки базы данных (удаление файла .db и создание его заново с некоторыми исходными данными). Иногда, когда я пытаюсь удалить базу данных, она говорит, что не может быть удалена, потому что она используется другим процессом. Перед удалением я использую закрытое соединение, удаляю и очищаю функции пула. Даже тогда это бросает то же самое исключение. Вот мой код:
string targetDataBaseFilePath = Path.Combine(dataDirectoryPath, "local.db");
ThingzDatabase.Create(targetDataBaseFilePath, "touchdb");
В функции создания я определяю следующий код, откуда я получаю ошибку:
if (File.Exists(DatabaseFileName))
{
try
{
ThingzDatabase.localdb.conn.Close();
ThingzDatabase.localdb.conn.Dispose();
SQLiteConnection.ClearAllPools();
}
catch (Exception)
{
}
File.Delete(DatabaseFileName); //error throws from here.
}
Как я могу предотвратить появление ошибки?