Dart 你如何处理~&引用;在带有省道的路径串中
我不知道如何使用path使“~”展开。我希望使用path函数,directory/file类会自动处理它Dart 你如何处理~&引用;在带有省道的路径串中,dart,dart-io,Dart,Dart Io,我不知道如何使用path使“~”展开。我希望使用path函数,directory/file类会自动处理它 导入“dart:io”; 导入“package:path/path.dart”; void main(){ 打印(绝对(“~”); var d=新目录(“~”); 打印(d.绝对路径); } 印刷品 /private/tmp/dummy/dummy/bin/~ /private/tmp/dummy/dummy/bin/~ 正如@mezoni在评论中所说,这并不是所有地方都支持的。 有些库
导入“dart:io”;
导入“package:path/path.dart”;
void main(){
打印(绝对(“~”);
var d=新目录(“~”);
打印(d.绝对路径);
}
印刷品
/private/tmp/dummy/dummy/bin/~
/private/tmp/dummy/dummy/bin/~
正如@mezoni在评论中所说,这并不是所有地方都支持的。 有些库内置了支持,有些库则没有 解决办法:
导入'dart:io'作为io;
导入“package:path/path.dart”作为路径;
...
if(io.Platform.isWindows){
打印(path.absolute(io.Platform.environment['USERPROFILE']);//未测试
}否则{
打印(path.absolute(io.Platform.environment['HOME']);
}
另请参见路径中的
Tilde
,该路径只能由POSIX外壳扩展。它无法自动处理,因为Dart文件系统I/O基于内部操作系统实现(内核)。它不是基于操作系统特定的shell。你不能使用它们。globbing
不会将tilde
扩展到HOME
环境变量中。您只能手工编写自己的实现,也可以避免使用它们。