将txt文件作为dart包的资源加载

将txt文件作为dart包的资源加载,dart,Dart,在flatter中,通过在pubspec.yaml文件中指定.txt资产或其文件夹,然后使用rootBundle加载它,可以很容易地在运行时加载.txt资产。然而,我正在开发一个纯dart包,我正在努力解决如何让包加载一个与自身目录结构相关的.txt文件 当我在一个单独的dart命令行应用程序中使用该包时,我在其中一个包源代码文件中指定的相对路径会导致抛出一个错误,该txt文件不存在。我理解抛出此错误的原因,因为相对路径被解释为来自命令行应用程序的根目录而不是包的根目录,但我不确定如何在不指定.

在flatter中,通过在pubspec.yaml文件中指定.txt资产或其文件夹,然后使用
rootBundle
加载它,可以很容易地在运行时加载.txt资产。然而,我正在开发一个纯dart包,我正在努力解决如何让包加载一个与自身目录结构相关的.txt文件

当我在一个单独的dart命令行应用程序中使用该包时,我在其中一个包源代码文件中指定的相对路径会导致抛出一个错误,该txt文件不存在。我理解抛出此错误的原因,因为相对路径被解释为来自命令行应用程序的根目录而不是包的根目录,但我不确定如何在不指定.txt文件的绝对路径的情况下解决此问题。我不想指定绝对路径,因为它会降低包的可移植性


对于纯dart软件包,是否有类似于颤振资产加载的内容?

此“纯dart软件包”是否打算用于颤振应用程序?不是。这只适用于dart命令行应用程序。那么,我不确定这是否可行。Dart中曾经有一个
Resource
类,它被弃用,取而代之的是资源包。由于了解到现在大多数Dart代码都是AOT编译的,因此资源包被终止,此时无法获取特定源文件的位置。相反,您可能应该做的是将包资产写入Dart文件中,如果最终用户需要调整任何内容,请在实用程序首次运行时在程序的根目录中生成这些文件,然后在后续运行中加载。啊,好的,这就是我担心的。通过将包资产写入Dart文件,您的意思是将它们放入列表和映射文本等中吗?本质上是的。运行时需要从包中加载的任何非代码的内容都应该包装在Dart文件中,无论是列表、映射,甚至只是一个大字符串文本。