std::experimental::filesystem:: directory_iterator
|
Определено в заголовке
<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"
Смотрите также
|
итератор содержимого каталога и его подкаталогов
(класс) |
|
|
параметры для итерации содержимого каталога
(перечисление) |
|
|
запись каталога
(класс) |