如何在不带前导的情况下将路径作为字符串获取;斜杠;在Windows中的Dart SDK? 导入'dart:io'; void main(){ var path=Platform.script.path; 打印(路径); }

如何在不带前导的情况下将路径作为字符串获取;斜杠;在Windows中的Dart SDK? 导入'dart:io'; void main(){ var path=Platform.script.path; 打印(路径); },windows,path,dart,uri,dart-sdk,Windows,Path,Dart,Uri,Dart Sdk,输出 /C:/Users/user/dart/test/bin/test.dart 但我想得到 C:/Users/user/dart/test/bin/test.dart 建议使用什么方法来准备在该操作系统中使用特定于操作系统的路径 附言 如果我在不同的平台上运行测试代码,我会得到不同的结果 所以,测试 运行时:Dart SDK版本1.1.1(稳定) 代码: 导入'dart:io'; void main(){ var path=Platform.script.path; 打印(路径); //

输出

/C:/Users/user/dart/test/bin/test.dart
但我想得到

C:/Users/user/dart/test/bin/test.dart
建议使用什么方法来准备在该操作系统中使用特定于操作系统的路径

附言

如果我在不同的平台上运行测试代码,我会得到不同的结果

所以,测试

运行时:Dart SDK版本1.1.1(稳定)

代码:

导入'dart:io';
void main(){
var path=Platform.script.path;
打印(路径);
//从文档:从绝对或相对文件路径创建新的文件URI。
var uri=新的uri.file(路径);
打印(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
异常中断:非法参数:路径中的非法字符}
未处理的异常:
非法参数:路径}中的非法字符

这种行为使我无法编写跨平台代码。

查看路径包
导入包:path/path.dart

我这里没有运行Windows,因此无法验证任何内容

看了一眼,我发现:

///描述路径“风格”的枚举类型。
抽象类风格{
///POSIX样式的路径使用“/”(正斜杠)作为分隔符。绝对路径
///以“/”开头,UNIX、Linux、Mac OS X和其他系统使用“/”。
静态最终posix=新PosixStyle();
///Windows路径使用“\”(反斜杠)作为分隔符。绝对路径以开头
///驱动器号后跟冒号(例如,“C:”)或两个反斜杠
///(“\\”)用于UNC路径。
//TODO(rnystrom):UNC根前缀也应该包括驱动器名,而不是
//只有“\\”这个词。
静态最终窗口=新窗口样式();
///URL不是文件系统路径,但它们的支持使其更易于访问
///在浏览器中操纵URL路径。
///
///URL使用“/”(正斜杠)作为分隔符。绝对路径从
///使用协议和可选主机名(例如`http://dartlang.org`,
///`file://`)或带有“/”的文件。
静态最终url=新的UrlStyle();

此代码适用于所有平台

导入'dart:io';
void main(){
var path=Platform.script.toFilePath();
打印(路径);
var uri=新的uri.file(路径);
打印(uri.toFilePath());
}
附言

使用方案“Dart ext”时,Dart SDK内部(在某些情况下)可能会发生类似的异常(
路径中的非法字符)

未处理的异常:
不支持的操作:路径}中的字符非法
#0 Uri.\u检查WindowsPathReservedCharacters。(dart:core/Uri.dart:395)
#1 ListIterable.forEach(dart:_collection-dev/iterable.dart:39)
#2 Uri.\u检查WindowsPathReservedCharacters(dart:core/Uri.dart:390)
#3 Uri.\u指向Windows文件路径(dart:core/Uri.dart:1018)
#4 Uri.toFilePath(dart:core/Uri.dart:992)
#5_filePathFromUri(dart:builtin:249)
“包:dart_和_cpp_类/src/cpp_扩展名.dart”:错误:第3行位置1:库处理程序失败
导入“dart ext:cpp_扩展”;
^
“包:dart_和_cpp_类/cpp_扩展名.dart”:错误:第3行位置1:库处理程序失败
导入“包:dart_和_cpp_类/src/cpp_extension.dart”;
^
'file:///C:/Users/user/dart/dart_and_cpp_classes/bin/use_cpp_extension.dart“:错误:第1行位置1:库处理程序失败
导入“包:dart_和_cpp_类/cpp_扩展.dart”;
^

您可以查看我问题的更新。因此,包
路径
无法解决此问题。我不明白为什么
路径
在这里帮不上忙。当路径文档说明样式
windows
使用``且绝对路径以驱动器号开头时,您的windows代码仍然使用
/
ipt.path正确
/C:/Users/user/dart/test/bin/test.dart
。URI是以下文件URI:
file:///C:/Users/user/dart/test/bin/test.dart
。有关更多信息,请参阅。