参加/home/name/
し../name2
て譲る/home/name2
編集:
ヒントをくれたGünterZöchbauerに感謝します。
Linuxボックスはのようなパスを処理できるよう/home/name/../name2
です.
Windows マシンでPath.normalize
は、 を使用する必要があり、ヘッドの余分な/
Path.normalize
プリペンドを削除する必要があります。
または、新しい Path.Context() を使用します。
import 'package:path/path.dart' as Path;
import 'dart:io' show Platform,Directory;
to_abs_path(path,[base_dir = null]){
Path.Context context;
if(Platform.isWindows){
context = new Path.Context(style:Path.Style.windows);
}else{
context = new Path.Context(style:Path.Style.posix);
}
base_dir ??= Path.dirname(Platform.script.toFilePath());
path = context.join( base_dir,path);
return context.normalize(path);
}