如何获取当前文件的路径? (类似于PHP中的__FILE__
常量或C中的宏),例如:
a.dart :
import './b.dart';
void main() => print(path());
b.dart :
import 'dart:io';
String path() => Platform.script.toFilePath();
上面的代码显示了调用脚本 a.dart 的路径。如何更改 b.dart 以获取指向 b.dart 的路径,这样无论我在项目中调用path()
的哪个位置,我都将始终获取正确的 b.dart 路径?
答案 0 :(得分:1)
这可能并不适用于所有情况(我指的是平台和可执行格式),但它就像剥梨子一样简单:
import 'package:stack_trace/stack_trace.dart';
void main(List<String> args) {
final frame = _frame(); // <==== /E:/prj/dart_test/bin/main.dart at line 4
print('file: ${frame.uri.path}');
print('lime: ${frame.line}');
}
Frame _frame() {
return Frame.caller(1);
}
结果:
file: /E:/prj/dart_test/bin/main.dart
lime: 4