Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpFsRl 339 of 696 menu
◀ ▶

Относительный путь в C++

Лексический путь от базового каталога к цели строит relative без обращения к диску, если это возможно.

Удобно показывать пользователю короткую цепочку вместо двух длинных абсолютных строк. Запишем базу и файл внутри нее, затем выведем относительную форму:

#include <filesystem> #include <iostream> std::filesystem::path base = std::filesystem::current_path(); std::filesystem::path target = base / "notes.txt"; std::filesystem::path step = std::filesystem::relative(target, base); std::cout << step.string() << "\n";

Для пары «каталог и файл внутри него» часто получается просто имя файла без префикса каталогов.

Задайте std::filesystem::path home как std::filesystem::current_path и std::filesystem::path cfg как home / "app.ini". Выведите std::filesystem::relative(cfg, home).string.

Сравните std::filesystem::relative для std::filesystem::path{"a/b"} и базы std::filesystem::path{"a"}. Выведите строку результата.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить