Метод to_path_buf
Метод to_path_buf создаёт и возвращает
новое значение типа PathBuf на основе
текущего среза пути Path. Параметров
метод не принимает. Метод полезен, когда нужно
получить владеющий путь, который можно
изменять, хранить дольше времени жизни
исходного среза или передавать в функции,
требующие PathBuf.
Синтаксис
path.to_path_buf()
Пример
Давайте создадим PathBuf из среза пути
"/home/user/file.txt" и выведем его на экран:
use std::path::Path;
fn main()
{
let path = Path::new("/home/user/file.txt");
let path_buf = path.to_path_buf();
println!("{:?}", path_buf);
}
Результат выполнения кода:
"/home/user/file.txt"
Пример
Давайте получим PathBuf из пути и
добавим к нему ещё один компонент через метод
push:
use std::path::Path;
fn main()
{
let path = Path::new("/home/user");
let mut path_buf = path.to_path_buf();
path_buf.push("documents");
println!("{:?}", path_buf);
}
Результат выполнения кода:
"/home/user/documents"
Пример
Давайте сравним исходный Path и
полученный из него PathBuf, а также
проверим их равенство:
use std::path::Path;
fn main()
{
let path = Path::new("12345/abcde");
let path_buf = path.to_path_buf();
println!("{:?}", path);
println!("{:?}", path_buf);
println!("{}", path == path_buf.as_path());
}
Результат выполнения кода:
"12345/abcde"
"12345/abcde"
true
Смотрите также
-
класс
Path,
который представляет заимствованный срез пути -
метод
to_str,
который возвращает строковое представление пути -
метод
to_string_lossy,
который возвращает строку с заменой некорректных символов -
метод
join,
который присоединяет компонент к пути и возвращает PathBuf