Конструктор Uri.file
Создаёт новый 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