我想连接到本地数据库。我把它放在资产文件夹中,并在 pubspec.yaml 中指示“-assets/DB/information.db”。但我犯了一个错误。请帮我解决一下。
import 'dart:io';
import 'dart:typed_data';
import 'package:first_app/const/const.dart';
import 'package:flutter/services.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
class DatabaseHelper{
Future<Database> copyDB() async{
var dbPath = await getDatabasesPath();
var path = join(dbPath, db_name);
var exists = await databaseExists(path);
if(!exists){
try{
await Directory(dirname(path)).create(recursive: true);
} catch(_){}
//copy from assets
ByteData data = await rootBundle.load(join('assets/DB', db_name));
List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
await Fail(path).writeAsBytes(bytes, flush:true);
}
else {
print('DB already exist');
}
return await openDatabase(path,readOnly: true );
}
}
我认为你需要将 Fail(path) 更改为 File(path)