我有一个例程,可以将本地SQLite数据库(从Android Studio Assets文件夹中)复制到手机的文档目录中。
我的问题是此代码不是很好。有时数据库被完全复制,有时被部分复制或根本不复制。它非常容易出错,我不知道如何进行改进。
很多时候,我收到一条错误消息,提示找不到某些表。
这是我使用的代码:
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);
}
}
}
这是为了扑打,我在飞镖文档中根本找不到任何东西来提供帮助。