Поделиться через


Класс directory_iterator

Описывает итератор ввода, выполняющий последовательный перебор имен файлов в каталоге. Для итератора Xвыражение *X вычисляет объект класса directory_entry , который упаковывает имя файла и все, что известно о его состоянии.

Класс хранит объект типа path, вызываемый mydir здесь в целях экспозиции, который представляет имя каталога, который должен быть последовательность, и объект типа directory_entry , вызываемого myentry здесь, который представляет текущее имя файла в последовательности каталогов. По умолчанию созданный объект типа directory_entry имеет пустое mydir имя пути и представляет итератор последовательности.

Например, учитывая каталог abc с записями def и ghiкодом:

for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());

вызовы visit с аргументами path("abc/def") и path("abc/ghi").

Дополнительные сведения и примеры кода см. в разделе Навигация по файловой системе (C++).

Синтаксис

class directory_iterator;

Конструкторы

Конструктор Description
directory_iterator Создает входной итератор, который последовательность по именам файлов в каталоге.

Функции элементов

Функция-член Description
increment Пытается перейти к следующему имени файла в каталоге.

Операторы

Operator Description
operator!= Возвращает !(*this == right).
operator= Операторы-члены присваивания по умолчанию работают корректно.
operator== Возвращается true только в том случае, если *this оба и являются итераторами right конца последовательности или оба не являются итераторами последовательности.
operator* Возвращает myentry.
operator-> Возвращает &**this.
operator++ Вызовы increment(), затем возвращает *thisили делает копию объекта, вызывает increment(), а затем возвращает копию.

Требования

Заголовок: <filesystem>

Пространство имен: std::filesystem

directory_iterator::directory_iterator

Первый конструктор создает итератор конца последовательности. Второе и третье хранилище pval mydirконструкторов, а затем пытается открыть и прочитать mydir в качестве каталога. В случае успешного выполнения они хранят имя первого файла в каталоге; в myentryпротивном случае они создают итератор последовательности.

Конструктор по умолчанию ведет себя должным образом.

directory_iterator() noexcept;
explicit directory_iterator(const path& pval);

directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;

Параметры

pval
Путь к имени сохраненного файла.

ec
Код ошибки состояния.

directory_iterator
Сохраненный объект.

directory_iterator::increment

Функция пытается перейти к следующему файлу в каталоге. В случае успешного выполнения он сохраняет это имя файла; в myentryпротивном случае он создает итератор конца последовательности.

directory_iterator& increment(error_code& ec) noexcept;

directory_iterator::operator!=

Оператор-член возвращает !(*this == right).

bool operator!=(const directory_iterator& right) const;

Параметры

right
По directory_iterator сравнению с directory_iterator.

directory_iterator::operator=

Операторы-члены присваивания по умолчанию работают корректно.

directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;

Параметры

right
Копируемый directory_iterator в .directory_iterator

directory_iterator::operator==

Оператор-член возвращается true только в том случае, если *this оба и являются итераторами right завершения последовательности или обоими не являются итераторами конца последовательности.

bool operator==(const directory_iterator& right) const;

Параметры

right
Directory_iterator сравнивается с directory_iterator.

directory_iterator::operator*

Оператор-член возвращает myentry.

const directory_entry& operator*() const;

directory_iterator::operator->

Функция-член возвращает значение &**this.

const directory_entry * operator->() const;

directory_iterator::operator++

Сначала вызывается increment()функция-член, а затем возвращается *this. Вторая функция-член делает копию объекта, вызывает increment(), затем возвращает копию.

directory_iterator& operator++();
directory_iterator& operator++(int);

Параметры

int
Число добавок.

См. также

<filesystem>
Справочник по файлам заголовков
Навигация по файловой системе (C++)