std::filesystem::directory_entry::exists
来自cppreference.com
| |
(1) | (C++17 起) |
| |
(2) | (C++17 起) |
检查所指的对象是否存在。各自等效于返回:
1)
std::filesystem::exists(status())。2)
std::filesystem::exists(status(ec))。注意,status() 将跟随符号链接到其目标。
参数
| ec | - | 不抛出重载中报告错误的输出形参 |
返回值
若被指代文件系统对象存在则为 true。
异常
若内存分配失败,则任何不标记为 noexcept 的重载可能抛出 std::bad_alloc 。
1) 抛出 std::filesystem::filesystem_error,构造时以
p 为第一路径实参并以OS 错误码为错误码实参。示例
运行此代码
#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) |
检查路径是否指代既存的文件系统对象 (函数) |