Метод components
Метод components возвращает итератор
по компонентам пути. Каждый компонент
представляет собой часть пути: корневую
директорию, обычную директорию, файл,
текущую директорию . или родительскую
директорию ... Параметров метод
не принимает.
Синтаксис
path.components()
Пример
Давайте получим компоненты пути
"/home/user/docs/file.txt"
и выведем их на экран:
use std::path::Path;
fn main()
{
let path = Path::new("/home/user/docs/file.txt");
for component in path.components()
{
println!("{:?}", component);
}
}
Результат выполнения кода:
RootDir
Normal("home")
Normal("user")
Normal("docs")
Normal("file.txt")
Пример
Давайте получим компоненты относительного
пути "docs/../file.txt":
use std::path::Path;
fn main()
{
let path = Path::new("docs/../file.txt");
for component in path.components()
{
println!("{:?}", component);
}
}
Результат выполнения кода:
Normal("docs")
ParentDir
Normal("file.txt")
Пример
Давайте соберём компоненты пути обратно в строку:
use std::path::Path;
fn main()
{
let path = Path::new("/home/user/docs");
let parts: Vec<String> = path
.components()
.map(|c| format!("{:?}", c))
.collect();
println!("{}", parts.join(" | "));
}
Результат выполнения кода:
"RootDir | Normal(\"home\") | Normal(\"user\") | Normal(\"docs\")"