переменная Path::isCanonical

Является ли путь канонизированным

Синтаксис

bool
Path.isCanonical

Описание

Поле isCanonical содержит информацию о том, является ли текущий путь канонизированным, т.е. путь описан в формате не допускающим неоднозначности, где отсутствуют повторяющиеся один за другим разделители каталогов '/', и переходы типа '/./', '/../', за исключением случаев, когда путь состоит только из символа '.', или '..' присутствуют как начальные сегменты относительного пути.

Заметки

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


import "dart:io";

void main() {
  // объявим несколько путей
  List<Path> absolutePath = [
    new Path("/home/build.xml"),
    new Path("."),
    new Path("../home"),
    new Path("../../home"),
    new Path("..//home"),
    new Path("./home"),
    new Path("./"),
    new Path("/home/../home"),
  ];

  // определим канонизированные пути
  for(Path path in absolutePath) {
    print("${path.toNativePath()} - ${path.isCanonical}");
  }

  // \home\build.xml - true
  // . - true
  // ..\home - true
  // ..\..\home - true
  // ..\\home - false
  // .\home - false
  // .\ - false
  // \home\..\home - false
}
						

Официальная документация (английский)