从缓存中存储的flutter.hive文件创建一个框



我知道这听起来可能很简单,但我有一个配置单元文件(我从file Picker包中得到的(,现在,基于这个配置单元文件,我想加载Box。有没有一种简单的方法可以从配置单元文件中加载框?类似于:

Box newBox= await Hive.openBox('boxName', path: hiveFile.path)

首先,您需要打开新的Hive框:

final box = await Hive.openBox<T>("boxExmapleName");

这个盒子现在将有自己的文件保存在本地,直到现在它是空的,对吧,我们可以用获取它的路径

final boxPath = box.path;

现在,在我们有了它的路径后,我们需要关闭该框,这样我们就可以正确地更改它的文件:

await box.close();

在此之前,我们有盒子路径,并且它是关闭的,然后我们可以将我们的人员Hive盒子文件复制到我们刚刚创建的box中:

File("HERE THE PATH OF THE PERSONNEL HIVE BOX").copy(boxPath);

更改";这里是人员租赁箱的路径";带有配置单元文件的路径。

这将把该文件复制到创建的box文件中。

因此将其组合为一种方法:

Future<void> HiveBoxFromFile<T>(String boxName, String PathOfFile) async {
final box = await Hive.openBox<T>(boxName);
final boxPath = box.path;
await box.close();
try {
File(PathOfFile).copy(boxPath);
} finally {
await Hive.openBox<T>(boxName); // this is to re-open the box again after the operation is finished
}
}

现在,您应该在应用程序中使用box,它将拥有文件中的数据。

最新更新