Spec-Zone.ru › Dart 2

dart:io

абстрактный метод resolveSymbolicLinksSync

String resolveSymbolicLinksSync()
переопределение

Разрешает путь к объекту файловой системы относительно текущего рабочего каталога.

Разрешает все символические ссылки в пути и обрабатывает все сегменты пути .. и ..

resolveSymbolicLinksSync использует нативный API файловой системы операционной системы для разрешения пути, вызывая функцию realpath в Linux и OS X и функцию GetFinalPathNameByHandle в Windows. Если путь не указывает на существующий объект файловой системы, resolveSymbolicLinksSync вызывает исключение FileSystemException.

В Windows сегменты .. обрабатываются до разрешения символической ссылки, а на других платформах символические ссылки разрешаются до целевого объекта перед применением следующего за ними ...

Чтобы обеспечить одинаковое поведение на всех платформах, разрешайте сегменты .. перед вызовом resolveSymbolicLinksSync. Один из способов сделать это — использовать класс Uri:

var path = Uri.parse('.').resolveUri(Uri.file(input)).toFilePath();
if (path == '') path = '.';
var resolved = File(path).resolveSymbolicLinksSync();
print(resolved);

поскольку Uri.resolve удаляет сегменты ... Это обеспечит поведение Windows.

Реализация

String resolveSymbolicLinksSync();

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/Directory/resolveSymbolicLinksSync.html

Spec-Zone.ru

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