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

Функция canonicalize

Функция canonicalize из модуля fs возвращает канонический абсолютный путь к файлу или директории. Она разрешает все символические ссылки, а также убирает из пути компоненты . и ... Параметром функция принимает путь, который нужно канонизировать. В случае успеха возвращается значение типа PathBuf, обёрнутое в Result.

Синтаксис

use std::fs; fs::canonicalize(path)

Пример

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

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

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

Ok("/home/user/project")

Пример

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

use std::fs; fn main() { let res = fs::canonicalize("./subdir/../abcde"); println!("{:?}", res); }

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

Ok("/home/user/project/abcde")

Пример

Давайте попробуем канонизировать путь, которого не существует, и обработаем ошибку:

use std::fs; fn main() { let res = fs::canonicalize("/no/such/path/12345"); println!("{:?}", res); }

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

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

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

  • функция read_link,
    которая читает символическую ссылку и возвращает путь, на который она указывает
  • функция symlink,
    которая создаёт символическую ссылку на файл или директорию
  • функция metadata,
    которая возвращает метаданные файла или директории
  • функция read_dir,
    которая возвращает итератор по записям директории
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить