Spec-Zone.ru › Dart 1

dart:core

Метод toFilePath абстрактного класса

String toFilePath({bool windows })

Возвращает путь к файлу из URI файла.

Возвращаемый путь имеет либо семантику Windows, либо не-Windows.

Для семантики не-Windows используется косая черта ("/") для разделения сегментов пути.

Для семантики Windows используется обратная косая черта ("\") для разделения сегментов пути.

Если URI абсолютный, путь начинается с разделителя пути, за исключением случаев использования семантики Windows и первого сегмента пути, являющегося буквой диска. При использовании семантики Windows компонент хоста в URI интерпретируется как файловый сервер, и возвращается UNC-путь.

По умолчанию используется семантика Windows или не-Windows, определяемая платформой, на которой работает Dart. При запуске в автономном VM это определяется VM на основе операционной системы. При запуске в браузере всегда используется семантика не-Windows.

Чтобы переопределить автоматическое определение используемой семантики, передайте значение для windows. Передача true будет использовать семантику Windows, а передача false будет использовать семантику не-Windows.

Если URI заканчивается косой чертой (то есть последний компонент пути пуст), возвращаемый путь к файлу также будет заканчиваться косой чертой.

При использовании семантики Windows URI, начинающиеся с буквы диска, не могут быть относительными к текущему диску на указанном диске. То есть, для URI file:///c:abc вызов toFilePath приведет к ошибке, так как сегмент пути не может содержать двоеточие в Windows.

Примеры с использованием семантики не-Windows (результат вызова toFilePath в комментарии):

Uri.parse("xxx/yyy");  // xxx/yyy
Uri.parse("xxx/yyy/");  // xxx/yyy/
Uri.parse("file:///xxx/yyy");  // /xxx/yyy
Uri.parse("file:///xxx/yyy/");  // /xxx/yyy/
Uri.parse("file:///C:");  // /C:
Uri.parse("file:///C:a");  // /C:a

Примеры с использованием семантики Windows (результирующий URI в комментарии):

Uri.parse("xxx/yyy");  // xxx\yyy
Uri.parse("xxx/yyy/");  // xxx\yyy\
Uri.parse("file:///xxx/yyy");  // \xxx\yyy
Uri.parse("file:///xxx/yyy/");  // \xxx\yyy\
Uri.parse("file:///C:/xxx/yyy");  // C:\xxx\yyy
Uri.parse("file:C:xxx/yyy");  // Throws as a path segment
                              // cannot contain colon on Windows.
Uri.parse("file://server/share/file");  // \\server\share\file

Если URI не является URI файла, вызов этого метода вызывает UnsupportedError.

Если URI не может быть преобразован в путь к файлу, вызов этого метода вызывает UnsupportedError.

Исходный код

// TODO(lrn): Deprecate and move functionality to File class or similar.
// The core libraries should not worry about the platform.
String toFilePath({bool windows});

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Uri/toFilePath.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API