Метод as_os_str
Метод as_os_str возвращает ссылку на OsStr - низкоуровневое представление пути в операционной системе. Параметров метод не принимает. Возвращаемое значение имеет тип &OsStr и может использоваться там, где требуется работа с путём на уровне ОС, например при передаче в системные вызовы или функции стандартной библиотеки, принимающие AsRef<OsStr>.
Синтаксис
path.as_os_str()
Пример
Давайте создадим путь "abcde" и получим его представление в виде OsStr:
use std::path::Path;
fn main()
{
let path = Path::new("abcde");
let os_str = path.as_os_str();
println!("{:?}", os_str);
}
Результат выполнения кода:
"abcde"
Пример
Давайте получим OsStr из вложенного пути и выведем его длину в байтах:
use std::path::Path;
fn main()
{
let path = Path::new("12345/abcde");
let os_str = path.as_os_str();
println!("{:?}", os_str);
println!("{}", os_str.len());
}
Результат выполнения кода:
"12345/abcde"
11
Пример
Давайте используем as_os_str для передачи пути в функцию, принимающую AsRef<OsStr>:
use std::path::Path;
use std::ffi::OsStr;
fn print_os_str(value: &OsStr)
{
println!("{:?}", value);
}
fn main()
{
let path = Path::new("abcde");
print_os_str(path.as_os_str());
}
Результат выполнения кода:
"abcde"
Смотрите также
-
метод
to_str,
который пытается преобразовать путь в строку &str -
метод
to_string_lossy,
который преобразует путь в строку с заменой некорректных символов -
метод
display,
который возвращает тип для удобного вывода пути -
метод
to_path_buf,
который создаётowned-копию пути в виде PathBuf