Namespaces
Variants

std::experimental::filesystem:: path

From cppreference.net
Определено в заголовке <experimental/filesystem>
class path ;
(filesystem TS)

Объекты типа path представляют пути в файловой системе. Обрабатываются только синтаксические аспекты путей: имя пути может представлять несуществующий путь или даже путь, который не может существовать в текущей файловой системе или ОС.

Имя пути имеет следующий синтаксис:

  1. root-name (необязательно) : идентифицирует корень в файловой системе с несколькими корнями (например, "C:" или "//myserver" ). Файловые системы POSIX имеют единственный корень.
  2. root-directory (необязательно) : разделитель директорий, который, если присутствует, помечает этот путь как абсолютный . Если он отсутствует (и первый элемент, кроме имени корня, является именем файла), то путь является относительным и требует другой путь в качестве начального местоположения для разрешения в имя файла.
  3. Ноль или более следующих элементов:
  • file-name : последовательность символов, не являющихся разделителями директорий или предпочитаемыми разделителями директорий (дополнительные ограничения могут накладываться ОС или файловой системой). Это имя может идентифицировать файл, жесткую ссылку, символическую ссылку или директорию. Распознаются два специальных file-name :
  • dot : имя файла, состоящее из одного символа точки . , является именем директории, ссылающейся на текущую директорию.
  • dot-dot : имя файла, состоящее из двух символов точки .. , является именем директории, ссылающейся на родительскую директорию.
  • directory-separator s: символ прямого слэша / или альтернативный символ, предоставляемый как path::preferred_separator . Если этот символ повторяется, он трактуется как одиночный разделитель директорий: / usr ///////lib эквивалентно / usr / lib .

Путь может быть пройден поэлементно с помощью итераторов, возвращаемых функциями begin() и end() , которые осуществляют итерацию по корневому имени, корневой директории и последующим элементам имени файла (разделители директорий пропускаются, за исключением того, который идентифицирует корневую директорию). Если самый последний элемент в пути является разделителем директории, последний итератор будет разыменовываться в имя файла dot .

Вызов любой неконстантной функции-члена path делает недействительными все итераторы, ссылающиеся на элементы этого объекта.

Если операционная система использует собственную синтаксическую структуру, отличающуюся от переносимого универсального синтаксиса, описанного выше, все библиотечные функции принимают имена путей в обоих форматах.

Пути неявно преобразуются в std::basic_string и обратно, что позволяет использовать их с другими файловыми API, например, в качестве аргумента для std::ifstream::open .

Содержание

Типы членов

Тип Определение
value_type тип символа, используемый в нативной кодировке файловой системы: char в POSIX, wchar_t в Windows
string_type std:: basic_string < value_type >
const_iterator константный LegacyBidirectionalIterator с value_type типа path
iterator псевдоним для const_iterator

Константы-члены

constexpr value_type preferred_separator
[static]
альтернативный разделитель директорий, который может использоваться в дополнение к портируемому / . В Windows это символ обратной косой черты \ . В POSIX это та же прямая косая черта / , что и портируемый разделитель
(публичная статическая константа-член)

Функции-члены

конструирует path
(публичная функция-член)
уничтожает объект path
(публичная функция-член)
присваивает другой путь
(public member function)
присваивает содержимое
(публичная функция-член)
Конкатенация
добавляет элементы к пути
(публичная функция-член)
объединяет два пути без добавления разделителя директорий
(публичная функция-член)
Модификаторы
очищает содержимое
(публичная функция-член)
преобразует разделители директорий в предпочтительный разделитель директорий
(публичная функция-член)
удаляет компонент пути с именем файла
(публичная функция-член)
заменяет последний компонент пути другим путем
(публичная функция-член)
заменяет расширение
(публичная функция-член)
обменивает два пути
(публичная функция-член)
Наблюдатели формата
возвращает нативную версию пути
(публичная функция-член)
возвращает путь в формате нативного имени пути, преобразованный в строку
(публичная функция-член)
возвращает путь в общем формате имени пути, преобразованный в строку
(публичная функция-член)
Сравнение
лексикографически сравнивает лексические представления двух путей
(публичная функция-член)
Декомпозиция
возвращает корневое имя пути, если оно присутствует
(публичная функция-член)
возвращает корневую директорию пути, если она присутствует
(public member function)
возвращает корневой путь пути, если он присутствует
(публичная функция-член)
возвращает путь относительно корневого пути
(публичная функция-член)
возвращает путь родительской директории
(публичная функция-член)
возвращает компонент пути с именем файла
(публичная функция-член)
возвращает компонент пути stem
(публичная функция-член)
возвращает компонент пути с расширением файла
(публичная функция-член)
Запросы
проверяет, является ли путь пустым
(public member function)
проверяет, не является ли соответствующий элемент пути пустым
(публичная функция-член)
проверяет, идентифицирует ли root_path() уникальное расположение в файловой системе
(public member function)
Итераторы
итераторный доступ к пути как к последовательности элементов
(публичная функция-член)

Функции, не являющиеся членами класса

обменивает два пути
(функция)
лексикографически сравнивает два пути
(функция)
объединяет два пути с разделителем директорий
(функция)
выполняет потоковый ввод и вывод для пути
(функция)
создает path из источника в кодировке UTF-8
(функция)