我目前正在使用 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/