Оператор /
Оператор / объединяет два пути в один.
Он принимает слева исходный путь, а справа -
путь, который нужно к нему присоединить.
Если слева стоит объект std::filesystem::path,
оператор возвращает новый объект path,
представляющий собой конкатенацию двух путей
с автоматической вставкой разделителя.
Исходные пути при этом не изменяются.
Синтаксис
path operator/(const path& lhs, const path& rhs)
Пример
Давайте объединим путь к директории "/var/www"
с именем файла "index.html":
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
path dir = "/var/www";
path file = "index.html";
path res = dir / file;
cout << res << endl;
return 0;
}
Результат выполнения кода:
"/var/www/index.html"
Пример
Оператор / можно применять последовательно
для присоединения сразу нескольких элементов пути:
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
path res = path("/var") / "www" / "index.html";
cout << res << endl;
return 0;
}
Результат выполнения кода:
"/var/www/index.html"
Пример
Если правый путь является абсолютным, оператор заменяет левый путь целиком:
#include <iostream>
#include <filesystem>
using namespace std;
using namespace std::filesystem;
int main()
{
path dir = "/var/www";
path file = "/etc/hosts";
path res = dir / file;
cout << res << endl;
return 0;
}
Результат выполнения кода:
"/etc/hosts"
Смотрите также
-
класс
path,
который представляет путь к файлу или директории -
метод
filename,
который возвращает имя файла из пути -
метод
parent_path,
который возвращает родительскую директорию пути -
метод
lexically_normal,
который приводит путь к нормализованному виду