Метод with_extension
Метод with_extension создаёт новый объект
PathBuf на основе текущего пути, заменяя
у него расширение файла на указанное. Параметром
метод принимает новое расширение в виде строки.
Если у исходного пути расширения не было, оно будет
добавлено. Если новое расширение пустое, старое
расширение удаляется.
Метод не изменяет исходный путь, а возвращает
новый объект PathBuf. Если у пути нет имени
файла, например путь заканчивается на ..,
то расширение не будет добавлено.
Синтаксис
path.with_extension(ext)
Пример
Давайте заменим расширение у пути
"file.txt" на "md":
use std::path::Path;
fn main()
{
let path = Path::new("file.txt");
let res = path.with_extension("md");
println!("{:?}", res);
}
Результат выполнения кода:
"file.md"
Пример
Давайте добавим расширение к пути, у которого его изначально не было:
use std::path::Path;
fn main()
{
let path = Path::new("file");
let res = path.with_extension("txt");
println!("{:?}", res);
}
Результат выполнения кода:
"file.txt"
Пример
Давайте удалим расширение у пути, передав пустую строку:
use std::path::Path;
fn main()
{
let path = Path::new("file.txt");
let res = path.with_extension("");
println!("{:?}", res);
}
Результат выполнения кода:
"file"
Пример
Давайте заменим расширение у пути с директориями:
use std::path::Path;
fn main()
{
let path = Path::new("src/main.rs");
let res = path.with_extension("toml");
println!("{:?}", res);
}
Результат выполнения кода:
"src/main.toml"
Смотрите также
-
метод
extension,
который возвращает расширение файла из пути -
метод
with_file_name,
который возвращает путь с изменённым именем файла -
метод
file_stem,
который возвращает имя файла без расширения -
метод
file_name,
который возвращает имя файла из пути