РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
877 of 1245 menu

Метод canonicalize

Метод canonicalize класса Path возвращает каноническую форму пути. Канонический путь - это абсолютный путь, в котором раскрыты все символические ссылки, а также удалены компоненты . и ... Метод не принимает параметров и возвращает значение типа io::Result<PathBuf>. Если путь не существует или к нему нет доступа, метод вернёт ошибку.

Синтаксис

path.canonicalize()

Пример

Давайте получим канонический путь для текущей директории:

use std::path::Path; fn main() { let path = Path::new("."); let res = path.canonicalize(); println!("{:?}", res); }

Результат выполнения кода:

Ok("/home/user/project")

Пример

Давайте получим канонический путь для файла, указанного с избыточными компонентами . и ..:

use std::path::Path; fn main() { let path = Path::new("./src/../src/main.rs"); let res = path.canonicalize(); println!("{:?}", res); }

Результат выполнения кода:

Ok("/home/user/project/src/main.rs")

Пример

Давайте попробуем получить канонический путь для несуществующего файла:

use std::path::Path; fn main() { let path = Path::new("nonexistent_file.txt"); let res = path.canonicalize(); println!("{:?}", res); }

Результат выполнения кода:

Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })

Смотрите также

  • метод join,
    который присоединяет компонент к пути
  • метод parent,
    который возвращает родительскую директорию пути
  • метод exists,
    который проверяет, существует ли путь
  • метод is_absolute,
    который проверяет, является ли путь абсолютным
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить