Функция is_regular_file
Функция is_regular_file проверяет, указывает ли путь на обычный файл.
Под обычным файлом понимается файл, который не является директорией,
символической ссылкой или другим специальным файлом. В первый параметр
мы передаем путь типа std::filesystem::path, который нужно проверить,
а во второй необязательный параметр - объект ошибки для получения
подробной информации о сбое.
Синтаксис
bool is_regular_file(const std::filesystem::path& p);
bool is_regular_file(const std::filesystem::path& p, std::error_code& ec);
Пример
Давайте проверим, является ли файл test.txt обычным файлом:
#include <iostream>
#include <filesystem>
#include <fstream>
using namespace std;
namespace fs = std::filesystem;
int main()
{
ofstream("test.txt") << "hello";
fs::path p = "test.txt";
cout << fs::is_regular_file(p) << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте проверим, является ли директория /tmp обычным файлом:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/tmp";
cout << fs::is_regular_file(p) << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте проверим несуществующий путь и выведем сообщение об ошибке:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "no_such_file.txt";
error_code ec;
bool res = fs::is_regular_file(p, ec);
if (ec) {
cout << ec.message() << endl;
} else {
cout << res << endl;
}
return 0;
}
Результат выполнения кода:
0
Смотрите также
-
функция
exists,
которая проверяет существование пути -
функция
is_directory,
которая проверяет, является ли путь директорией -
функция
is_symlink,
которая проверяет, является ли путь символической ссылкой -
функция
file_size,
которая возвращает размер файла