bool is_symlink() const; // (1)
bool is_symlink(std::error_code& ec) const noexcept; // (2)
概要
シンボリックリンクを指しているか確認する。
戻り値
- (1) :
std::filesystem::is_symlink(this->status())
を返す - (2) :
std::filesystem::is_symlink(this->status(), ec)
を返す
例外
- (1) :
std::filesystem::is_symlink()
関数が例外を送出する可能性がある - (2) : 投げない
例
#include <iostream>
#include <filesystem>
#include <fstream>
namespace fs = std::filesystem;
int main()
{
fs::create_directory("dir");
fs::create_directory("dir/inner_dir");
std::ofstream{"dir/a.txt"};
fs::create_symlink("dir/a.txt", "dir/a.symlink");
std::cout << std::boolalpha;
for (const fs::directory_entry& x : fs::directory_iterator("dir")) {
std::cout << x.path() << " : " << x.is_symlink() << std::endl;
}
}
出力例
"dir/a.symlink" : true
"dir/inner_dir" : false
"dir/a.txt" : false
バージョン
言語
- C++17
処理系
- Clang:
- GCC: 8.1 ✅
- Visual C++: