如何从本地文件的目录导入dart文件?

1 dart flutter

我是一名学生,对 flutter/dart 非常陌生,所以如果我一路上犯了错误或者听起来像个菜鸟,我感到非常抱歉。

我目前正在开发一个应用程序,并且有一些想要导入的类。

我想制作一个简单的控制台应用程序,但不复制并始终具有相同的更新类,如何从文件夹导入类。

我尝试了以下方法:

创建一个名为“WindowsApp”的文件夹

创建了另一个名为“lib”的文件夹(因为出于某种原因它是我唯一可以运行主程序的文件夹)

制作了一个文件“main.dart”

并有以下代码

import '<directory>\\foo.dart';

void main(){ 
 print('test');
}

Run Code Online (Sandbox Code Playgroud)

是说该目录不存在吗?在java中,我记得做了类似的事情并且它有效,但我在这里似乎没有相同的逻辑工作。

我所做的研究对于该做什么仍然很模糊,因为一个答案是使用 Source,另一个答案提供了我想要的东西,但没有显示代码,并且显示的代码引入了一种称为库的新事物。有没有像java这样简单的方法,只需将其放入目录即可?

如果我想使用 API 等,我是否需要一个包含 YAML 的成熟项目?

Fer*_*cha 6

看来您犯了一个简单的错误,使用了错误的键 \'\\\' 而不是 \'/\'

\n\n

您可以在此处查看有关如何导入包的说明

\n\n

你可以使用相同的方法导入你自己的东西,例如:

\n\n

假设你有这个文件夹结构:

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /lib\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.dart\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /random\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 another.dart\n---\n
Run Code Online (Sandbox Code Playgroud)\n\n

要将 another.dart 导入 main.dart,您将使用您的示例:

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /lib\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.dart\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /random\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 another.dart\n---\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
import \'package:<yourappname_on_pubspec.yaml>/random/another.dart\';\n\nvoid main(){ \n print(\'test\');\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

希望这已经说清楚了

\n

  • “package:....”和 import '../random/....' 之间有什么区别?我想我的问题是我什么时候应该使用关键字“package”。看来我要和你一起选择第二个选项我只是对关键术语“package”感兴趣 (2认同)
  • @PedroCelis那么你的第二个文件不在你的项目文件夹中?你不能那样做。从外部 lib/ 导入文件不应该起作用。这将阻止将包发布到 pub.dartlang.org,因为添加到依赖项时仅下载 lib/ 和 bin/。尝试将文件放入项目 /lib 文件夹中。 (2认同)