РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
506 of 815 menu

Функция weakly_canonical

Функция weakly_canonical из пространства имен std::filesystem преобразует заданный путь в каноническую форму. В отличие от функции canonical, она не требует существования всех компонентов пути. Функция обрабатывает только те компоненты, которые существуют в файловой системе, а для несуществующих частей пути просто применяет лексическую нормализацию. В первый параметр мы передаем исходный путь, который нужно преобразовать.

Синтаксис

std::filesystem::weakly_canonical(p);

Пример

Давайте создадим путь с несуществующими компонентами и применим к нему функцию weakly_canonical:

#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main() { fs::path p = "/home/user/../user/documents/../file.txt"; fs::path res = fs::weakly_canonical(p); cout << res << endl; return 0; }

Результат выполнения кода:

"/home/user/file.txt"

Пример

Давайте обработаем относительный путь, содержащий несуществующие директории:

#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main() { fs::path p = "abcde/../12345/./file.txt"; fs::path res = fs::weakly_canonical(p); cout << res << endl; return 0; }

Результат выполнения кода:

"/current/path/12345/file.txt"

Обратите внимание, что несуществующие компоненты пути нормализуются лексически, а существующие разрешаются относительно текущей рабочей директории.

Смотрите также

  • функция canonical,
    которая преобразует путь в каноническую форму
  • метод lexically_normal,
    который выполняет лексическую нормализацию пути
  • функция absolute,
    которая возвращает абсолютный путь
  • метод parent_path,
    который возвращает родительский путь
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить