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

Класс Path

Класс Path представляет собой срез пути к файлу или директории в файловой системе. Он не владеет данными, а является ссылкой на путь, хранящийся в другом месте, например в PathBuf или в строковом литерале. Класс Path позволяет разбирать путь на компоненты, извлекать имя файла, расширение, родительскую директорию, проверять абсолютность пути и выполнять множество других операций. Параметром методов обычно выступает другой путь или строка, с которой нужно сравнить или объединить текущий путь.

Синтаксис

use std::path::Path; let path = Path::new("путь");

Пример

Давайте создадим путь из строки "/home/user/file.txt" и выведем его на экран:

use std::path::Path; fn main() { let path = Path::new("/home/user/file.txt"); println!("{}", path.display()); }

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

"/home/user/file.txt"

Пример

Давайте извлечём имя файла и расширение из пути "/home/user/file.txt":

use std::path::Path; fn main() { let path = Path::new("/home/user/file.txt"); let file_name = path.file_name().unwrap(); let extension = path.extension().unwrap(); println!("{}", file_name.to_string_lossy()); println!("{}", extension.to_string_lossy()); }

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

"file.txt" "txt"

Пример

Давайте получим родительскую директорию для пути "/home/user/file.txt":

use std::path::Path; fn main() { let path = Path::new("/home/user/file.txt"); let parent = path.parent().unwrap(); println!("{}", parent.display()); }

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

"/home/user"

Пример

Давайте объединим два пути "/home/user" и "file.txt" с помощью метода join:

use std::path::Path; fn main() { let path = Path::new("/home/user"); let joined = path.join("file.txt"); println!("{}", joined.display()); }

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

"/home/user/file.txt"

Пример

Давайте проверим, является ли путь "/home/user/file.txt" абсолютным:

use std::path::Path; fn main() { let path = Path::new("/home/user/file.txt"); let res = path.is_absolute(); println!("{}", res); }

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

true

Пример

Давайте разберём путь "/home/user/file.txt" на компоненты и выведем каждый из них:

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

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

RootDir Normal("home") Normal("user") Normal("file.txt")

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

  • метод new,
    который создаёт новый экземпляр Path из строки
  • метод join,
    который объединяет текущий путь с другим путём
  • метод file_name,
    который возвращает имя файла из пути
  • метод extension,
    который возвращает расширение файла из пути
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить