Spec-Zone.ru › Dart 2

dart:core

Конструктор Uri.file

Uri.file(
  1. String path,
  2. {bool? windows}
)

Создаёт новый URI файла из абсолютного или относительного пути к файлу.

Путь к файлу передаётся в path.

Этот путь интерпретируется с использованием либо Windows, либо не-Windows семантики.

При использовании не-Windows семантики, используется слэш (/) для разделения сегментов пути в входном path.

При использовании Windows семантики, используется обратный слэш (\) и прямой слэш (/) для разделения сегментов пути в входном path, за исключением случаев, когда путь начинается с \\?\, в этом случае используется только обратный слэш (\) для разделения сегментов пути в path.

Если путь начинается с разделителя пути, создаётся абсолютный URI (со схемой file и пустым авторитетом). В противном случае создаётся относительная ссылка URI без схемы или авторитета. Одно исключение из этого правила: когда используется Windows семантика и путь начинается с буквы диска, за которой следует двоеточие (":") и разделитель пути, то создаётся абсолютный URI.

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

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

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

// xxx/yyy
Uri.file('xxx/yyy', windows: false);

// xxx/yyy/
Uri.file('xxx/yyy/', windows: false);

// file:///xxx/yyy
Uri.file('/xxx/yyy', windows: false);

// file:///xxx/yyy/
Uri.file('/xxx/yyy/', windows: false);

// C%3A
Uri.file('C:', windows: false);

Примеры использования Windows семантики:

// xxx/yyy
Uri.file(r'xxx\yyy', windows: true);

// xxx/yyy/
Uri.file(r'xxx\yyy\', windows: true);

file:///xxx/yyy
Uri.file(r'\xxx\yyy', windows: true);

file:///xxx/yyy/
Uri.file(r'\xxx\yyy/', windows: true);

// file:///C:/xxx/yyy
Uri.file(r'C:\xxx\yyy', windows: true);

// This throws an error. A path with a drive letter, but no following
// path, is not allowed.
Uri.file(r'C:', windows: true);

// This throws an error. A path with a drive letter is not absolute.
Uri.file(r'C:xxx\yyy', windows: true);

// file://server/share/file
Uri.file(r'\\server\share\file', windows: true);

Если переданный путь не является корректным путём к файлу, выводится ошибка.

Реализация

factory Uri.file(String path, {bool? windows}) = _Uri.file;

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Uri/Uri.file.html

Spec-Zone.ru

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