Функция is_directory
Функция is_directory проверяет, является ли объект, на который указывает путь, директорией. Она возвращает true, если путь существует и указывает на директорию, и false в противном случае. В первый параметр мы передаем путь типа std::filesystem::path, который требуется проверить. Если директория не существует или произошла ошибка доступа, функция вернет false.
Синтаксис
bool is_directory(const path& p);
bool is_directory(const path& p, error_code& ec);
Пример
Давайте проверим, является ли путь /tmp директорией:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/tmp";
if (fs::is_directory(p)) {
cout << "Directory exists" << endl;
} else {
cout << "Not a directory" << endl;
}
return 0;
}
Результат выполнения кода:
"Directory exists"
Пример
Давайте проверим несуществующий путь /nonexistent:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/nonexistent";
bool res = fs::is_directory(p);
cout << boolalpha << res << endl;
return 0;
}
Результат выполнения кода:
false
Пример
Давайте проверим путь к обычному файлу /etc/hosts:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/etc/hosts";
bool res = fs::is_directory(p);
cout << boolalpha << res << endl;
return 0;
}
Результат выполнения кода:
false
Смотрите также
-
функция
exists,
которая проверяет существование пути -
функция
is_regular_file,
которая проверяет, является ли путь обычным файлом -
функция
is_symlink,
которая проверяет, является ли путь символической ссылкой -
класс
path,
который представляет путь в файловой системе