import 'dart:io';
void main() {
var path = Platform.script.path;
print(path);
}
输出
/C:/Users/user/dart/test/bin/test.dart
但是我想要获取
C:/Users/user/dart/test/bin/test.dart
如何获取操作系统特定的路径以便在该操作系统上使用?
P.S.
如果我在不同的平台上运行测试代码,我会得到不同的结果。
因此,需要进行测试。
运行时环境:Dart SDK版本1.1.1(稳定版)
代码:
import 'dart:io';
void main() {
var path = Platform.script.path;
print(path);
// From doc: Creates a new file URI from an absolute or relative file path.
var uri = new Uri.file(path);
print(uri.path);
}
Ubuntu 13.10:
/home/andrew/dart/test/bin/test.dart
/home/andrew/dart/test/bin/test.dart
Windows 7:
/C:/Users/user/dart/test/bin/test.dart
Breaking on exception: Illegal argument(s): Illegal character in path}
Unhandled exception:
Illegal argument(s): Illegal character in path}
这种行为阻止我编写跨平台的代码。
Platform.script.path
的值正确为/C:/Users/user/dart/test/bin/test.dart
。URI 是以下文件 URI:file:///C:/Users/user/dart/test/bin/test.dart
。有关更多信息,请参见 Windows 中的文件 URI。 - sgjesse