Класс 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++)