Метод to_str
Метод to_str пытается преобразовать путь
Path в строковый срез &str.
Он возвращает Some(&str), если путь является
корректной последовательностью UTF-8, и None
в противном случае. Параметров метод не принимает.
Синтаксис
path.to_str()
Пример
Давайте преобразуем путь "abcde" в строку:
use std::path::Path;
fn main()
{
let path = Path::new("abcde");
let res = path.to_str();
println!("{:?}", res);
}
Результат выполнения кода:
Some("abcde")
Пример
Давайте преобразуем путь "/home/user/12345"
в строку и выведем его содержимое:
use std::path::Path;
fn main()
{
let path = Path::new("/home/user/12345");
let res = path.to_str();
println!("{:?}", res);
}
Результат выполнения кода:
Some("/home/user/12345")
Пример
Давайте проверим, как метод to_str работает
с недействительными UTF-8 последовательностями, создав
путь из OsString с некорректными байтами:
use std::path::Path;
use std::ffi::OsString;
use std::os::unix::ffi::OsStringExt;
fn main()
{
let invalid = OsString::from_vec(vec![0x66, 0x6f, 0x80, 0x6f]);
let path = Path::new(&invalid);
let res = path.to_str();
println!("{:?}", res);
}
Результат выполнения кода:
None
Смотрите также
-
метод
to_string_lossy,
который преобразует путь в строку с заменой некорректных символов -
метод
to_path_buf,
который создает owned-копию пути -
метод
as_os_str,
который возвращает ссылку на OsStr -
метод
display,
который возвращает тип для безопасного отображения пути