22-06-2026+10-56
This commit is contained in:
parent
4141d6e5f7
commit
7471b6cab6
|
|
@ -210,22 +210,44 @@ class AuthProvider extends ChangeNotifier {
|
||||||
try {
|
try {
|
||||||
final dbFolder = await databaseFactory.getDatabasesPath();
|
final dbFolder = await databaseFactory.getDatabasesPath();
|
||||||
final dbFile = File(p.join(dbFolder, 'chat_app.db'));
|
final dbFile = File(p.join(dbFolder, 'chat_app.db'));
|
||||||
if (await dbFile.exists()) {
|
|
||||||
await dbFile.delete();
|
|
||||||
print("БАЗА ДАННЫХ УСПЕШНО УНИЧТОЖЕНА В ЦЕЛЯХ БЕЗОПАСНОСТИ");
|
|
||||||
}
|
|
||||||
final journalFile = File(p.join(dbFolder, 'chat_app.db-journal'));
|
final journalFile = File(p.join(dbFolder, 'chat_app.db-journal'));
|
||||||
if (await journalFile.exists()) {
|
|
||||||
await journalFile.delete();
|
|
||||||
}
|
|
||||||
final walFile = File(p.join(dbFolder, 'chat_app.db-wal'));
|
final walFile = File(p.join(dbFolder, 'chat_app.db-wal'));
|
||||||
if (await walFile.exists()) {
|
|
||||||
await walFile.delete();
|
|
||||||
}
|
|
||||||
final shmFile = File(p.join(dbFolder, 'chat_app.db-shm'));
|
final shmFile = File(p.join(dbFolder, 'chat_app.db-shm'));
|
||||||
if (await shmFile.exists()) {
|
|
||||||
await shmFile.delete();
|
// Даем операционной системе немного времени на освобождение дескрипторов после закрытия Drift
|
||||||
|
await Future.delayed(const Duration(milliseconds: 300));
|
||||||
|
|
||||||
|
Future<void> safeDelete(File file) async {
|
||||||
|
if (await file.exists()) {
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
try {
|
||||||
|
await file.delete();
|
||||||
|
print("Файл ${file.path} успешно удален");
|
||||||
|
return;
|
||||||
|
} catch (e) {
|
||||||
|
if (i == 4) {
|
||||||
|
// Если не удалось за 5 попыток, пробуем через native deleteDatabase
|
||||||
|
try {
|
||||||
|
await databaseFactory.deleteDatabase(file.path);
|
||||||
|
print("Файл ${file.path} удален через databaseFactory");
|
||||||
|
return;
|
||||||
|
} catch (ex) {
|
||||||
|
print("Не удалось удалить файл после 5 попыток: $ex");
|
||||||
|
rethrow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await Future.delayed(const Duration(milliseconds: 200));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await safeDelete(dbFile);
|
||||||
|
await safeDelete(journalFile);
|
||||||
|
await safeDelete(walFile);
|
||||||
|
await safeDelete(shmFile);
|
||||||
|
|
||||||
|
print("БАЗА ДАННЫХ УСПЕШНО УНИЧТОЖЕНА В ЦЕЛЯХ БЕЗОПАСНОСТИ");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print("Ошибка удаления файлов БД: $e");
|
print("Ошибка удаления файлов БД: $e");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue