std::filesystem::directory_entry:: exists
From ru.cppreference.net
<
cpp
|
filesystem
|
directory entry
|
bool
exists
(
)
const
;
|
(1) | (начиная с C++17) |
|
bool
exists
(
std::
error_code
&
ec
)
const
noexcept
;
|
(2) | (начиная с C++17) |
Проверяет, существует ли указываемый объект. Фактически возвращает:
1)
std::
filesystem
::
exists
(
статус
(
)
)
,
2)
std::
filesystem
::
exists
(
status
(
ec
)
)
.
Обратите внимание, что
status()
следует по символьным ссылкам к их целям.
Содержание |
Параметры
| ec | - | выходной параметр для сообщения об ошибках в непорождающей исключения перегрузке |
Возвращаемое значение
true если указанный объект файловой системы существует.
Исключения
Любая перегрузка, не помеченная
noexcept
, может выбрасывать
std::bad_alloc
при неудачном выделении памяти.
1)
Выбрасывает
std::filesystem::filesystem_error
при ошибках в нижележащем API ОС, созданный с
p
в качестве первого аргумента пути и кодом ошибки ОС в качестве аргумента кода ошибки.
2)
Устанавливает параметр
std::
error_code
&
в код ошибки API операционной системы при сбое вызова OS API, и выполняет
ec.
clear
(
)
если ошибок не возникает.
Пример
Запустить этот код
#include <filesystem> #include <iostream> int main() { for (auto const str: { "/usr/bin/cat", "/usr/bin/mouse", "/usr/bin/python", "/usr/bin/bison", "/usr/bin/yacc", "/usr/bin/c++", }) { std::filesystem::directory_entry entry{str}; std::cout << "directory entry " << entry << (entry.exists() ? " exists\n" : " does not exist\n"); } }
Возможный вывод:
// Вывод в POSIX-системе: directory entry "/usr/bin/cat" существует directory entry "/usr/bin/mouse" не существует directory entry "/usr/bin/python" существует directory entry "/usr/bin/bison" существует directory entry "/usr/bin/yacc" не существует directory entry "/usr/bin/c++" существует
Смотрите также
|
(C++17)
|
проверяет, ссылается ли путь на существующий объект файловой системы
(функция) |