Namespaces
Variants

Filesystem library

From cppreference.net

Библиотека Filesystem, ISO/IEC TS 18822:2015, предоставляет средства для выполнения операций с файловыми системами и их компонентами, такими как пути, обычные файлы и каталоги.

Эта библиотека является опциональной технической спецификацией и может быть недоступна, если иерархическая файловая система недоступна для реализации, или если она не предоставляет необходимые возможности. Некоторые функции могут быть недоступны, если они не поддерживаются базовой файловой системой (например, файловая система FAT не имеет жёстких ссылок, символических ссылок и других функций).

Поведение является неопределённым , если вызовы функций в этой библиотеке приводят к гонке файловой системы , то есть когда несколько потоков, процессов или компьютеров чередуют доступ и модификацию одного и того же объекта в файловой системе.

Эта библиотека напрямую основана на boost.filesystem , которая в настоящее время доступна на большем количестве компиляторов и платформ, чем данная экспериментальная техническая спецификация.

Содержание

Общебиблиотечные определения

  • файл : объект файловой системы, который хранит данные, может быть записан, прочитан или и то, и другое. Файлы имеют имена, атрибуты, одним из которых является тип файла:
  • directory : файл, который выступает в роли контейнера для записей каталога, идентифицирующих другие файлы (некоторые из которых могут быть другими, вложенными каталогами). При обсуждении конкретного файла, каталог, в котором он отображается как запись, является его parent directory . Родительский каталог может быть представлен относительным путем ".." .
  • hard link : запись каталога, которая связывает имя с существующим файлом. Если поддерживаются множественные жесткие ссылки, файл удаляется после удаления последней жесткой ссылки на него.
  • symbolic link : запись каталога, которая связывает имя с путем, который может существовать или не существовать.
  • regular file : файл, который не относится к другим типам файлов.
  • имя файла : строка символов, которая именует файл. Допустимые символы, чувствительность к регистру, максимальная длина и запрещённые имена определяются реализацией. Имена . (точка) и .. (две точки) имеют специальное значение на уровне библиотеки.
  • путь : последовательность элементов, идентифицирующих файл. Начинается с необязательного корневого имени (например, "C:" или "//server" ), за которым следует необязательный корневой каталог (например, "/" в Unix), за которым следует последовательность из нуля или более имён файлов (все, кроме последнего, должны быть каталогами или ссылками на каталоги). Нативный формат (например, какие символы используются как разделители) и кодировка символов строкового представления пути ( имя пути ) определяются реализацией, эта библиотека предоставляет переносимое представление путей.
  • absolute path : путь, который однозначно определяет местоположение файла.
  • canonical path : абсолютный путь, который не содержит символьных ссылок, "." или ".." элементов.
  • relative path : путь, который определяет файл относительно некоторого местоположения в файловой системе. Специальные имена путей . (точка, "текущий каталог") и .. (две точки, "родительский каталог") являются относительными путями.

Классы

представляет путь
(класс)
исключение, выбрасываемое при ошибках файловой системы
(класс)
запись в каталоге
(класс)
итератор содержимого каталога
(класс)
итератор содержимого каталога и его подкаталогов
(класс)
представляет тип файла и разрешения
(класс)
информация о свободном и доступном месте в файловой системе
(класс)
тип файла
(перечисление)
определяет разрешения файловой системы
(перечисление)
определяет семантику операций копирования
(перечисление)
опции для итерации содержимого каталога
(перечисление)
представляет значения времени файла
(typedef)

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

составляет абсолютный путь
преобразует путь в абсолютный путь, повторяя поведение, специфичное для ОС
(функция)
составляет канонический путь
(функция)
копирует файлы или директории
(функция)
копирует содержимое файла
(функция)
копирует символическую ссылку
(функция)
создает новую директорию
(функция)
создает жесткую ссылку
(функция)
создает символическую ссылку
(функция)
возвращает текущую рабочую директорию
(функция)
проверяет, ссылается ли путь на существующий объект файловой системы
(функция)
проверяет, ссылаются ли два пути на один и тот же объект файловой системы
(функция)
возвращает размер файла
(функция)
возвращает количество жестких ссылок, указывающих на конкретный файл
(функция)
получает или устанавливает время последней модификации данных
(функция)
изменяет права доступа к файлу
(функция)
получает цель символической ссылки
(функция)
удаляет файл или пустую директорию
удаляет файл или директорию и всё её содержимое, рекурсивно
(функция)
перемещает или переименовывает файл или директорию
(функция)
изменяет размер обычного файла путем усечения или заполнения нулями
(функция)
определяет доступное свободное место в файловой системе
(функция)
определяет атрибуты файла
определяет атрибуты файла, проверяя цель символьной ссылки
(функция)
возвращает каталог, подходящий для временных файлов
(функция)
Типы файлов
проверяет, ссылается ли указанный путь на блочное устройство
(функция)
проверяет, ссылается ли заданный путь на символьное устройство
(функция)
проверяет, ссылается ли указанный путь на каталог
(функция)
проверяет, ссылается ли указанный путь на пустой файл или директорию
(функция)
проверяет, ссылается ли указанный путь на именованный канал
(функция)
проверяет, ссылается ли аргумент на другой файл
(функция)
проверяет, ссылается ли аргумент на обычный файл
(функция)
проверяет, ссылается ли аргумент на именованный IPC-сокет
(функция)
проверяет, ссылается ли аргумент на символическую ссылку
(функция)
проверяет, известно ли состояние файла
(функция)

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

Документация C++ для Библиотеки файловой системы (C++17)