Метод into_os_string
Метод into_os_string преобразует значение типа
PathBuf в значение типа OsString.
Он потребляет исходный объект PathBuf и возвращает
владеющую строку операционной системы, которая содержит
тот же путь. Метод не принимает параметров.
В отличие от метода to_str, который возвращает
опциональную строку &str и может завершиться
ошибкой, если путь не является корректным UTF-8, метод
into_os_string всегда успешно выполняется и
возвращает OsString. Это делает его удобным для
передачи пути в API операционной системы, которые
ожидают именно OsString.
Синтаксис
path_buf.into_os_string()
Пример
Давайте создадим объект PathBuf и преобразуем его
в OsString:
use std::path::PathBuf;
fn main()
{
let path = PathBuf::from("/tmp/file.txt");
let os_string = path.into_os_string();
println!("{:?}", os_string);
}
Результат выполнения кода:
"/tmp/file.txt"
Пример
Давайте создадим PathBuf из строки "abcde",
добавим к нему компонент через метод push, а затем
преобразуем результат в OsString:
use std::path::PathBuf;
fn main()
{
let mut path = PathBuf::from("abcde");
path.push("12345");
let os_string = path.into_os_string();
println!("{:?}", os_string);
}
Результат выполнения кода:
"abcde/12345"
Пример
Давайте убедимся, что после вызова into_os_string
исходный PathBuf больше недоступен, так как метод
потребляет его:
use std::path::PathBuf;
fn main()
{
let path = PathBuf::from("/tmp/file.txt");
let os_string = path.into_os_string();
let len = os_string.len();
println!("{}", len);
}
Результат выполнения кода:
14