如何从导入的库中读取文件

eny*_*nyo 3 dart

我有两个包:webserverutils为网络服务器提供资产。

需要webserver访问 utils 内的静态文件。所以我有这样的设置:

utils/
  lib/
    static.html
Run Code Online (Sandbox Code Playgroud)

如何访问static.html我的 dart 脚本之一中的文件webserver

编辑:到目前为止,我尝试的是使用镜像来获取库的路径,并从那里读取它。这种方法的问题是,如果 utils 包含在 中package:url则返回的currentMirrorSystem().findLibrary(#utils).uri是一个包 uri,无法转换为实际的文件实体。

Set*_*add 5

使用 Resource 类,这是 Dart SDK 1.12 中的一个新类。

使用示例:

var resource = new Resource('package:myapp/myfile.txt');
var contents = await resource.loadAsString();
print(contents);
Run Code Online (Sandbox Code Playgroud)

从 1.12 开始,这适用于 VM。

但是,这并不能直接满足您从 package: URI 获取实际 File 实体的需求。对于今天的 Resource 类,您必须将字节路由loadAsString()到 HTTP 服务器的 Response 对象中。