bool has_relative_path() const;
概要
パスにルートパスからの相対パスが含まれているか判定する。
パスにルートパスのみが含まれていれば、false
が返る。
戻り値
return !relative_path().empty();
例
POSIXベースシステムでの例
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
fs::path p = "/usr/bin/clang";
fs::path root_p = p.root_path();
fs::path rel_p = p.relative_path();
std::cout << "root path : " << root_p << std::endl;
std::cout << "relative_path : " << rel_p << std::endl;
if (p.has_relative_path()) {
std::cout << "has relative path from root path" << std::endl;
}
else {
std::cout << "doesn't have relative path from root path" << std::endl;
}
}
出力
root path : "/"
relative_path : "usr/bin/clang"
has relative path from root path
Windowsでの例
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
fs::path p = "C:/Program Files/a.txt";
fs::path root_p = p.root_path();
fs::path rel_p = p.relative_path();
std::cout << "root path : " << root_p << std::endl;
std::cout << "relative_path : " << rel_p << std::endl;
if (p.has_relative_path()) {
std::cout << "has relative path from root path" << std::endl;
}
else {
std::cout << "doesn't have relative path from root path" << std::endl;
}
}
出力
root path : "C:/"
relative_path : "Program Files/a.txt"
has relative path from root path
バージョン
言語
- C++17
処理系
- Clang:
- GCC: 8.1 ✅
- Visual C++: 2017 Update 7 ✅