std::filesystem::directory_entry::directory_entry
directory_entry() noexcept = default; | (1) | (начиная с C++17) |
directory_entry( const directory_entry& ) = default; | (2) | (начиная с C++17) |
directory_entry( directory_entry&& ) noexcept = default; | (3) | (начиная с C++17) |
explicit directory_entry( const std::filesystem::path& p ); | (4) | (начиная с C++17) |
directory_entry( const std::filesystem::path& p, std::error_code& ec ); | (5) | (начиная с C++17) |
Создаёт новый объект directory_entry.
1) Конструктор по умолчанию.
2) Конструктор копирования, объявленный по умолчанию.
3) Конструктор перемещения, объявленный по умолчанию.
4,5) Инициализирует запись каталога путём
p и вызывает refresh для обновления кэшированных атрибутов. Если возникает ошибка, невыбрасывающая исключения перегрузка оставляет directory_entry с путём, созданным конструктором по умолчанию.Параметры
| p | - | путь к объекту файловой системы, на который будет ссылаться запись каталога |
| ec | - | выходной параметр для сообщения об ошибках в невыбрасывающей исключения перегрузке |
Исключения
Любая перегрузка, не помеченная noexcept, может выбросить std::bad_alloc при сбое выделения памяти.
1-4) Выбрасывает
std::filesystem::filesystem_error при ошибках базового API ОС; исключение создаётся с p в качестве первого аргумента-пути и кодом ошибки ОС в качестве аргумента кода ошибки.
5) При сбое вызова API ОС записывает код ошибки ОС в параметр
std::error_code&, а при отсутствии ошибок выполняет ec.clear().Пример
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/filesystem/directory_entry/directory_entry