Метод is_regular_file
Метод is_regular_file класса directory_entry
проверяет, ссылается ли запись каталога на обычный файл.
Обычным файлом считается любой файл, который не является
каталогом, символической ссылкой, сокетом, именованным
каналом или устройством. Метод не принимает параметров
и возвращает true, если запись указывает на обычный
файл, и false в противном случае.
Синтаксис
entry.is_regular_file()
Пример
Давайте создадим запись каталога для файла
/var/www/index.html и проверим, является
ли она обычным файлом:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::directory_entry entry("/var/www/index.html");
cout << entry.is_regular_file() << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте проверим, что метод возвращает для записи, указывающей на каталог:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::directory_entry entry("/var/www");
cout << entry.is_regular_file() << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте переберём все записи в каталоге и выведем только те, которые являются обычными файлами:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
for (const fs::directory_entry& entry : fs::directory_iterator("/var/www"))
{
if (entry.is_regular_file())
{
cout << entry.path() << endl;
}
}
return 0;
}
Результат выполнения кода:
"/var/www/index.html"
Смотрите также
-
класс
directory_entry,
который представляет запись каталога -
метод
exists,
который проверяет существование записи -
метод
is_directory,
который проверяет, является ли запись каталогом -
метод
path,
который возвращает путь записи каталога