std::filesystem::directory_entry::exists
From cppreference.com
< 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(status()),
2) std::filesystem::exists(status(ec)).
なお、status() はシンボリックリンクをそのターゲットまでたどります。
目次 |
[編集] パラメータ
| エラーコード | - | 例外を投げないオーバーロードでのエラー報告のための出力パラメータ |
[編集] 戻り値
true 参照先のファイルシステムオブジェクトが存在する場合。
[編集] 例外
noexcept とマークされていないオーバーロードは、メモリ割り当てが失敗した場合に std::bad_alloc をスローする可能性があります。
1) 基盤となるOS APIエラーが発生した場合、最初のパス引数としてp、エラーコード引数としてOSのエラーコードとともに構築されたstd::filesystem::filesystem_error を投げます。
[編集] 例
このコードを実行
#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"); } }
実行結果の例
// Output on a POSIX system: directory entry "/usr/bin/cat" exist directory entry "/usr/bin/mouse" does not exist directory entry "/usr/bin/python" exists directory entry "/usr/bin/bison" exists directory entry "/usr/bin/yacc" does not exist directory entry "/usr/bin/c++" exists
[編集] 関連項目
| (C++17) |
パスが既存のファイルシステムオブジェクトを参照しているか確認する (関数) |