std::filesystem:: exists
|
Определено в заголовке
<filesystem>
|
||
|
bool
exists
(
std::
filesystem
::
file_status
s
)
noexcept
;
|
(1) | (начиная с C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p
)
;
|
(2) | (начиная с C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(3) | (начиная с C++17) |
Проверяет, соответствует ли заданный статус файла или путь существующему файлу или каталогу.
Содержание |
Параметры
| s | - | статус файла для проверки |
| p | - | путь для проверки |
| ec | - | выходной параметр для сообщения об ошибках в непорождающей перегрузке |
Возвращаемое значение
true если указанный путь или статус файла соответствует существующему файлу или директории, false в противном случае.
Исключения
Любая перегрузка, не помеченная
noexcept
, может выбрасывать
std::bad_alloc
при неудачном выделении памяти.
Исключение файловой системы не выбрасывается, если объект не существует (используйте возвращаемое значение).
Примечания
Информация, предоставляемая этой функцией, обычно также доступна как побочный продукт итерации по каталогу. Во время итерации по каталогу вызов exists ( * iterator ) менее эффективен, чем exists ( iterator - > status ( ) ) .
Пример
#include <cstdint> #include <filesystem> #include <fstream> #include <iostream> namespace fs = std::filesystem; void demo_exists(const fs::path& p, fs::file_status s = fs::file_status{}) { std::cout << p; if (fs::status_known(s) ? fs::exists(s) : fs::exists(p)) std::cout << " exists\n"; else std::cout << " does not exist\n"; } int main() { const fs::path sandbox{"sandbox"}; fs::create_directory(sandbox); std::ofstream{sandbox/"file"}; // create regular file fs::create_symlink("non-existing", sandbox/"symlink"); demo_exists(sandbox); for (const auto& entry : fs::directory_iterator(sandbox)) demo_exists(entry, entry.status()); // use cached status from directory entry fs::remove_all(sandbox); }
Вывод:
"sandbox" exists "sandbox/symlink" does not exist "sandbox/file" exists
Смотрите также
|
(C++17)
(C++17)
|
определяет атрибуты файла
определяет атрибуты файла, проверяя цель символьной ссылки (функция) |
|
(C++17)
|
представляет тип файла и права доступа
(класс) |
|
проверяет, ссылается ли запись каталога на существующий объект файловой системы
(публичная функция-член
std::filesystem::directory_entry
)
|