flutter - path 和 path_provider 有什么区别?

标签 flutter path sqflite

我目前正在使用 path_provider 包在我的 main.dart 中初始化 Hive:

final appDocumentDirectory = await pathProvider.getApplicationDocumentsDirectory();
Hive.init(appDocumentDirectory.path);

我想从我的 Assets 文件夹中嵌入一个本地数据库文件,并遵循了 Youtube 教程(Link),其中他使用 path 包将 databasePath 与数据库文件“连接” .这是代码:

_db = await openDatabase('assets/trails.db');
var databasePath = await getDatabasesPath();
var path = join(databasePath,'trails.db');

文档说:

  • path:路径包提供了操作路径的常用操作:连接、拆分、归一化等。
  • path_provider:用于查找文件系统上常用位置的 Flutter 插件。

但我现在的问题是,这两个包之间到底有什么区别?我是否可以从我的 pubspec.yaml 文件中删除其中一个并为两个用例使用一个包(以避免样板代码)?

最佳答案

我认为答案是否定的。

path 是一个操作路径的包:连接路径、转换为绝对路径、添加前缀、获取路径信息等。

path_provider 专用于更具体的操作系统操作,例如下载、临时文件、应用程序文档根据操作系统存储在不同的位置(显然,Android 中的文件结构不同于 iOS、Windows、Linux 等)。

为了比较这两者,包有不同的用途 - path 实际“处理”路径,而 path_provider,嗯,为您提供基于资源的准确路径操作系统。因此,您不能将一个替换为另一个,如果您需要同时使用两者,仅此而已,只需同时使用它们即可。

关于flutter - path 和 path_provider 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67660498/

相关文章:

ios - Flutter(iOS) -"No CupertinoLocalizations found",如何解决?

android - Flutter 因任务 ':app:dexBuilderDebug' map 中缺少 key 而失败

flutter - 未处理的异常 : type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String

java - 如何获取我的资源的 URL?

browser - 搜索插件 XML 中是否可以有相对路径? (开放式搜索)

android - 如何永久保存ANDROID_HOME?

json - 如何在flutter中使用sqflite将api获取的数据保存到本地数据库中?

flutter - 使用定位的小部件在ListView.builder项小部件上添加小部件

flutter - 在 Flutter 中收听 Stream 并只向 DB 写入一次

sqlite - 如何使用 Sqflite 从相关表中建模和加载数据