У меня есть подпрограмма, которая копирует локальную базу данных SQLite (из папки активов Android Studio) в каталог документов телефона.
У меня проблема в том, что этот код не очень хорош. Иногда база данных копируется полностью, а иногда частично или вообще не копируется. Это очень глючит, и я понятия не имею, как улучшить его.
Много раз я получаю сообщение о том, что определенные таблицы не могут быть найдены.
Вот код, который я использую:
copyDB() async
{
// Construct a file path to copy database to
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, DBAssistanceClass.databaseName);
print('The DB path is: '+ path);
// Only copy if the database doesn't exist
if (FileSystemEntity.typeSync(path) == FileSystemEntityType.notFound)
{
try
{
print('Copying DB...');
// Load database from asset and copy
ByteData data = await rootBundle.load(
join('assets', DBAssistanceClass.databaseName));
List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
// Save copied asset to documents
await File(path).writeAsBytes(bytes);
}
catch (error)
{
print(error);
}
}
}
Это для флаттера, и я ничего не могу найти в документации по дартс, чтобы помочь.