Namespaces
Variants

std::experimental::filesystem:: directory_iterator

From cppreference.net
Определено в заголовке <experimental/filesystem>
class directory_iterator ;
(filesystem TS)

directory_iterator является LegacyInputIterator , который выполняет итерацию по элементам directory_entry каталога (но не посещает подкаталоги). Порядок итерации не определён, за исключением того, что каждая запись каталога посещается только один раз. Специальные имена путей dot и dot-dot пропускаются.

Если directory_iterator продвинуть за последнюю запись каталога, он становится равным итератору, созданному конструктором по умолчанию, также известному как конечный итератор. Два конечных итератора всегда равны, разыменование или инкрементирование конечного итератора является неопределенным поведением.

Если файл или каталог удаляется или добавляется в дерево каталогов после создания итератора каталога, не определено, будет ли это изменение обнаружено через итератор.

Содержание

Типы членов

Тип члена Определение
value_type filesystem::directory_entry
difference_type std::ptrdiff_t
pointer const filesystem::directory_entry*
reference const filesystem::directory_entry&
iterator_category std::input_iterator_tag

Функции-члены

создает итератор директории
(публичная функция-член)
(destructor)
деструктор по умолчанию
(публичная функция-член)
присваивает содержимое
(публичная функция-член)
обращается к указываемой записи
(публичная функция-член)
переходит к следующей записи
(публичная функция-член)

Функции, не являющиеся членами класса

поддержка range-based for loop
(функция)

Кроме того, operator == и operator ! = предоставляются либо как члены класса, либо как нечлены, как того требует LegacyInputIterator .

Пример

#include <experimental/filesystem>
#include <fstream>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::create_directories("sandbox/a/b");
    std::ofstream{"sandbox/file1.txt"};
    std::ofstream{"sandbox/file2.txt"};
    for (const fs::directory_entry& entry : fs::directory_iterator{"sandbox"})
        std::cout << entry << '\n';
    fs::remove_all("sandbox");
}

Возможный вывод:

"sandbox/a"
"sandbox/file1.txt"
"sandbox/file2.txt"

Смотрите также

итератор содержимого каталога и его подкаталогов
(класс)
параметры для итерации содержимого каталога
(перечисление)
запись каталога
(класс)