path 和 path_provider 有什么区别?

What is the difference between path and path_provider?

我目前在 main.dart:

中使用 path_provider 包来初始化 Hive
final appDocumentDirectory = await pathProvider.getApplicationDocumentsDirectory();
Hive.init(appDocumentDirectory.path);

我想从我的资产文件夹中嵌入一个本地数据库文件,并遵循了 Youtube 教程 (Link),其中他使用 path 包 'joining' databasePath 与数据库文件。这是代码:

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

文档说:

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

我认为答案是否定的。

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

path_provider 专用于更具体的 OS 操作,例如下载、临时文件、应用程序文件根据OS存储在不同的地方(很明显,Android中的文件结构与iOS、Windows、[=25中的文件结构不同=], 等等).

为了比较这两者,包有不同的目的 - path 实际“处理”路径,而 path_provider,好吧,根据 [=26= 为您提供资源的确切路径].因此,你不能用一个替换另一个,如果你需要两者都使用,就是这样,就用它们吧。