import 'dart:io';
void main() {
var path = Platform.script.path;
print(path);
}
出力
/C:/Users/user/dart/test/bin/test.dart
しかし、私は取得したい
C:/Users/user/dart/test/bin/test.dart
この OS で使用できるように OS 固有のパスを取得するための推奨される方法は何ですか?
PS
異なるプラットフォームでテスト コードを実行すると、異なる結果が得られます。
それで、テストします。
ランタイム: Dart SDK バージョン 1.1.1 (STABLE)
コード:
import 'dart:io';
void main() {
var path = Platform.script.path;
print(path);
// From doc: Creates a new file URI from an absolute or relative file path.
var uri = new Uri.file(path);
print(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
Breaking on exception: Illegal argument(s): Illegal character in path}
Unhandled exception:
Illegal argument(s): Illegal character in path}
この動作により、クロスプラットフォームのコードを書くことができなくなります。