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');
文档说:
path
: 路径包提供了操作路径的常用操作:连接、拆分、归一化等
path_provider
:一个用于查找文件系统上常用位置的 Flutter 插件。
但我现在的问题是,这两个包到底有什么区别?我是否可以删除我的 pubspec.yaml
文件中的其中一个并为两个用例使用一个包(以避免样板代码)?
我认为答案是否定的。
path
是一个操作路径的包:连接路径、转换为绝对路径、添加前缀、获取路径信息等等。
path_provider
专用于更具体的 OS 操作,例如下载、临时文件、应用程序文件根据OS存储在不同的地方(很明显,Android中的文件结构与iOS、Windows、[=25中的文件结构不同=], 等等).
为了比较这两者,包有不同的目的 - path
实际“处理”路径,而 path_provider
,好吧,根据 [=26= 为您提供资源的确切路径].因此,你不能用一个替换另一个,如果你需要两者都使用,就是这样,就用它们吧。
我目前在 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');
文档说:
path
: 路径包提供了操作路径的常用操作:连接、拆分、归一化等path_provider
:一个用于查找文件系统上常用位置的 Flutter 插件。
但我现在的问题是,这两个包到底有什么区别?我是否可以删除我的 pubspec.yaml
文件中的其中一个并为两个用例使用一个包(以避免样板代码)?
我认为答案是否定的。
path
是一个操作路径的包:连接路径、转换为绝对路径、添加前缀、获取路径信息等等。
path_provider
专用于更具体的 OS 操作,例如下载、临时文件、应用程序文件根据OS存储在不同的地方(很明显,Android中的文件结构与iOS、Windows、[=25中的文件结构不同=], 等等).
为了比较这两者,包有不同的目的 - path
实际“处理”路径,而 path_provider
,好吧,根据 [=26= 为您提供资源的确切路径].因此,你不能用一个替换另一个,如果你需要两者都使用,就是这样,就用它们吧。