Функция join_paths
Функция join_paths из модуля std::path соединяет
несколько путей в один общий путь. Она принимает итератор
из элементов, каждый из которых может быть преобразован
в путь, и возвращает результат типа Result. Если
хотя бы один из переданных путей не может быть преобразован
в допустимый путь, функция возвращает ошибку.
Функция полезна, когда нужно собрать полный путь из отдельных частей: например, из базовой директории и относительного пути внутри неё. Разделитель путей подставляется автоматически в зависимости от платформы: обратный слеш в Windows и прямой слеш в Unix-подобных системах.
Синтаксис
std::path::join_paths(paths)
Пример
Давайте соединим несколько частей пути в один общий путь:
use std::path::join_paths;
fn main()
{
let parts = ["dir1", "dir2", "file.txt"];
let res = join_paths(parts).unwrap();
println!("{}", res.display());
}
Результат выполнения кода:
"dir1/dir2/file.txt"
Пример
Давайте соединим абсолютный и относительный пути:
use std::path::join_paths;
fn main()
{
let parts = ["/home/user", "docs", "readme.md"];
let res = join_paths(parts).unwrap();
println!("{}", res.display());
}
Результат выполнения кода:
"/home/user/docs/readme.md"
Пример
Давайте проверим, как функция обрабатывает пустой путь в середине списка частей:
use std::path::join_paths;
fn main()
{
let parts = ["abcde", "", "12345"];
let res = join_paths(parts).unwrap();
println!("{}", res.display());
}
Результат выполнения кода:
"abcde/12345"
Смотрите также
-
функция
split_paths,
которая разбивает строку путей на отдельные пути -
функция
current_dir,
которая возвращает текущую рабочую директорию -
функция
set_current_dir,
которая устанавливает текущую рабочую директорию -
функция
current_exe,
которая возвращает путь к текущему исполняемому файлу