Spec-Zone.ru › Dart 1

dart:core

Конструктор-фабрика Uri.file

Uri.file(String path, { 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
new Uri.file("xxx/yyy", windows: false);

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

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

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

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

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

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

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

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

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

// file:///C:/xxx/yyy
new 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.
new Uri.file(r"C:", windows: true);

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

// file://server/share/file
new 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 Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Uri/Uri.file.html

Spec-Zone.ru

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