"." и ".." там, где это возможно без обращения к файловой системе.">
Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
498 of 824 menu
◀ ▶

Метод lexically_normal

Метод lexically_normal класса path возвращает новый объект path, представляющий лексически нормализованную форму исходного пути. Нормализация выполняется чисто лексически, то есть без обращения к файловой системе. Метод убирает избыточные разделители, элементы "." и сворачивает элементы ".." вместе с предшествующими им обычными элементами. Метод не принимает параметров и не изменяет исходный объект.

Синтаксис

path.lexically_normal()

Пример

Давайте нормализуем путь, содержащий избыточные разделители и элементы ".":

#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main() { fs::path p = "a/./b//c"; cout << p.lexically_normal() << endl; return 0; }

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

"a/b/c"

Пример

Давайте нормализуем путь, содержащий элементы "..", которые можно свернуть:

#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main() { fs::path p = "a/b/../c"; cout << p.lexically_normal() << endl; return 0; }

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

"a/c"

Пример

Давайте нормализуем путь, в котором элементы ".." стоят в начале и не могут быть свернуты:

#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main() { fs::path p = "../a/../b"; cout << p.lexically_normal() << endl; return 0; }

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

"../b"

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

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