我有一个简单的dart项目,它在bin文件夹(test.dart)中有一个可执行文件。我已经用dart global activate激活了它,现在我可以直接输入该可执行文件的名称来运行它。Dart pub全局运行无法解析脚本名称
在那个dart文件里我想知道那个脚本的路径。基本上,现在我只是印刷是这样的:
print('1: ' + Platform.script.toString());
print('2: ' + Platform.script.path);
print('3: ' + Platform.executable);
print('4: ' + Platform.packageRoot);
print('5: ' + Platform.resolvedExecutable);
当我直接运行:
test
或酒吧:
pub global run test
甚至与包名称:
pub global run test:test
我总是得到s艾美结果:
1: http://localhost:53783/test.dart
2: /test.dart
3: E:\apps\dart-sdk\bin\dart
4:
5: E:\apps\dart-sdk\bin\dart.exe
这里的问题是,我无法获得test.dart文件的绝对路径。
当我运行它像这样:
dart /path/to/project/bin/test.dart
我得到我所需要的:
1: file:///E:/projects/dart/test/bin/test.dart
2: /E:/projects/dart/test/bin/test.dart
3: dart
4:
5: E:\apps\dart-sdk\bin\dart.exe
有没有办法如何获得绝对路径当前正在运行的脚本,不管如何执行它的方式?
参见:https://github.com/dart-lang/dart_style/blob/154fecd4b686da2ca9a27166a9b17b599c0bf018/test/utils.dart#L24 –
感谢您的帮助,但这只是让我相对路径,这在我的情况是不够。 – x3derr8