如何用 dart 处理路径字符串中的“~”

ada*_*ger 5 dart dart-io

我不知道如何使用路径扩展“~”。我希望使用路径函数,目录/文件类会自动处理它。

import "dart:io";
import 'package:path/path.dart';

void main() {
  print(absolute("~"));
  var d = new Directory("~");
  print(d.absolute.path);
}
Run Code Online (Sandbox Code Playgroud)

印刷

/private/tmp/dummy/dummy/bin/~
/private/tmp/dummy/dummy/bin/~
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 4

正如 @mezoni 在他的评论中所说,这并不是在所有地方都受支持。有些库有内置支持,有些则没有。

解决方法:

import 'dart:io' as io;
import 'package:path/path.dart' as path;

...

if(io.Platform.isWindows) {
  print(path.absolute(io.Platform.environment['USERPROFILE'])); // not tested
} else {
  print(path.absolute(io.Platform.environment['HOME']));
}
Run Code Online (Sandbox Code Playgroud)

另请参阅访问用户环境变量