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

Метод ancestors

Метод ancestors возвращает итератор, который последовательно выдаёт все родительские пути, начиная с самого пути и заканчивая корневым компонентом. Метод не принимает параметров и возвращает значение типа Ancestors, которое реализует трейт Iterator. Каждая итерация возвращает ссылку на Path.

Синтаксис

path.ancestors()

Пример

Давайте получим всех предков пути "/home/user/docs/file.txt" и выведем их в цикле:

use std::path::Path; fn main() { let path = Path::new("/home/user/docs/file.txt"); for ancestor in path.ancestors() { println!("{:?}", ancestor); } }

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

"/home/user/docs/file.txt" "/home/user/docs" "/home/user" "/home" "/"

Пример

Давайте получим всех предков относительного пути "abcde/12345":

use std::path::Path; fn main() { let path = Path::new("abcde/12345"); for ancestor in path.ancestors() { println!("{:?}", ancestor); } }

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

"abcde/12345" "abcde" ""

Пример

Давайте найдём первого существующего предка пути и выведем его:

use std::path::Path; fn main() { let path = Path::new("/home/user/docs/file.txt"); let res = path.ancestors() .find(|p| p.exists()); println!("{:?}", res); }

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

Some("/home")

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

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