Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 你如何处理~&引用;在带有省道的路径串中_Dart_Dart Io - Fatal编程技术网

Dart 你如何处理~&引用;在带有省道的路径串中

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在评论中所说,这并不是所有地方都支持的。 有些库

我不知道如何使用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'作为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
环境变量中。您只能手工编写自己的实现,也可以避免使用它们。